본문 바로가기
반응형

● 크롤링, 자동화59

colab에서 selenium 사용하는 법 Colab에선 별도로 chrome webdriver를 설치해줘야함 !pip install selenium !apt-get update !apt install chromium-chromedriver from selenium import webdriver from urllib.request import urlopen from bs4 import BeautifulSoup as bs from urllib.parse import quote_plus from selenium.webdriver.common.keys import Keys import time url = 'https://search.naver.com/search.naver?where=image&sm=tab_jum&query=' kword = input(.. 2021. 8. 12.
Google Colab, Google drive와 연동하기 import os, sys from google.colab import drive # drive.mount('/content/mnt') # drive 파일 경로 nb_path = '/content/notebooks' os.symlink('/content/mnt/My Drive/Colab Notebooks', nb_path) sys.path.insert(0, nb_path) 솜씨좋은장씨 세상 모든 개발 관련 지식을 담아보자! somjang.tistory.com 2021. 8. 12.
[에러해결] Google Colab error : 'chromedriver' executable needs to be in PATH 원인 : It is probably due to an update from Selenium 해결방법 : apt-get update 참고자료 : 1. Stackoverflow 2021. 8. 12.
[오류해결] INTEL MKL ERROR: 지정된 모듈을 찾을 수 없습니다. mkl_intel_thread.1.dll.Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.1.dll. 상황 : 크롤링py파일을 pyinstaller로 exe파일로 생성함 하지만 exe파일을 실행하니 제목과 같은 오류 2가지가 발생 오류명 : INTEL MKL ERROR: 지정된 모듈을 찾을 수 없습니다. mkl_intel_thread.1.dll. Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.1.dll. 원인 : 프로그램이 라이브러리 경로에서 mkl 라이브러리 파일을 찾을 수 없음을 의미 해결방법 : "mkl_"로 시작하는 파일을 python.exe 루트에 복사하여 문제를 해결 anaconda3 folder에 있는 3가지 파일(하단) - mkl_core.1.dll - mkl_def.1.dll - mkl_intel_thread.1.dll 을 exe파일이 위치한.. 2021. 8. 11.
[jupyter notebook] pyinstaller로 exe파일 만들기 (ipynb -> py 변환) 개요 1. ipynb를 py로 변환하기 2. pyinstall로 exe파일 만들기 3. exe 후 정상적으로 작동하지 않는다면? 1. ipynb를 py로 변환하기 환경 : jupyter notebook # pyinstaller를 설치 pip install pyInstaller # 확장자 변환하기 !jupyter nbconvert --to script cio_korea.ipynb 2. pyinstall로 exe파일 만들기 환경 : Anaconda Prompt # pyinstaller 설치 conda install pyinstaller # exe로 만들 파일이 위치한 폴더로 이동 cd dev # exe 파일 만들기 pyinstaller cio_korea.py # cio_korea.py는 exe파일로 만들 파.. 2021. 8. 11.
Selenium Dropdown, Commbo box 선택하는 방법 Selenium Dropdown, Commbo box 선택하는 방법은 의외로 간단하다. from selenium import webdriver b = webdriver.Firefox() b.find_element_by_xpath("여기에 Copy Xpath 넣기").click() 끝. 2021. 6. 2.
[에러해결] ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 헤더를 추가해줌으로서 해결 headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} res = requests.get('',headers=headers ) 2021. 5. 19.
[BeautifulSoup] Dummy 지정(soup.select)할 때, 추출대상을 모두 포함하는 부모태그를 지정해야한다. 추출할 대상은 다음 하늘색 밑줄 친 제목들! 참고로 하늘색 텍스트들은 .list_txt > li > a 태그에 속해있다. 이를 select로 지정하기 위해 한 묶음으로 dummy를 지정해보았다. dummy = soup.select(".list_txt") 하지만 이렇게 지정하면 원하는 기사 제목들이 나오지 않는다. 구체적으로 지정해야만 한다. 추출 대상(타이틀제목, 링크)이 모두 포함된 부모 태그를 dummy로 지정해야만 한다. 즉, dummy = soup.select('.list_txt > li') 이렇게 해야만 정상적으로 나온다. 2021. 5. 19.
Selenium 에서 헤더 User-Agent 값 수정하기 문제점 : Python과 Selenium을 활용해서 크롤링 하는 도중에 한 사이트가 오직 IE에서만 작동 해결책 : 헤더값에 User-Agent 값을 IE의 값으로 바꿔주면 된다 방법 : from selenium import webdriver import Config options = webdriver.ChromeOptions() options.add_argument("user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko") driver = webdriver.Chrome(executable_path=Config.CONFIG['CHROMEPATH'],options=options) driver.get('') https:.. 2021. 5. 19.
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".p"} (Session info: chrome=90.0.4430.212) NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".p"} (Session info: chrome=90.0.4430.212) 원인 : 페이지 로드시 .p가 생성되지 않으므로 NoSuchElementException에러가 발생 해결법 : 셀레니움의 대기(Waits)기능을 이용해서 해결 p_tag = WebDriverWait(browser,timeout=5).until(EC.presence_of_element_located((By.TAG_NAME, "p"))) print("p태그를 찾았습니다.") https://workingwithpython.com/sele.. 2021. 5. 19.
[BeautifulSoup에러] ('Connection aborted.', ConnectionResetError(10054, '현재 연결은 원격 호스트에 의해 강제로 끊겼습니다', None, 10054, None)) ('Connection aborted.', ConnectionResetError(10054, '현재 연결은 원격 호스트에 의해 강제로 끊겼습니다', None, 10054, None)) 소켓 연결 실패 시에 생기는 에러이다, header를 추가하는 방식으로 해결하면 된다. headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} res = requests.get('URL', headers=headers) 2021. 5. 19.
requests와 urllib.request의 차이는 뭘까? requests urllib.request 데이터를 보낼 때 딕셔너리 형태로 보낸다 데이터를 보낼 때 인코딩하여 바이너리 형태로 보낸다 없는 페이지를 요청해도 에러를 띄우지 않는다 없는 페이지를 요청해도 에러를 띄운다 requests와 urllib.request 간에 큰 차이가 없어보입니다만 대체로 requests를 많이 쓰는 것 같네요. 저도 requests.get() 방법이 HTTP method와 연관되어 있으니 직관적으로 이해하기 쉽다고 느꼈습니다. 참고로 requests.get()을 통해 받아온 객체 안에 무엇이 있는지 보기 위해선 아래 명령어를 사용해서 확인하면 됩니다. dir(req) # req.text https://moondol-ai.tistory.com/238 파이썬 크롤링 request.. 2021. 5. 16.
크롤링 과정에서 나타난 HTTPSConnectionPool(URL, port=443) 에러 res = requests.get('URL') 위 코드를 입력했더니 에러가 발생했다. 에러명 HTTPSConnectionPool(host='www.work.go.kr', port=443): Max retries exceeded with url: /empSpt/empNews/retrieveEmpNewsList.do?pageIndex=1&sortOrderField=dtm&sortOrderBy=DESC&newsId=&searchRegionCd=&searchStdt=&searchEndt=&searchKwrd=&pageUnit=50 (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_.. 2021. 5. 15.
datetime 모듈로 날짜/시간 처리하기 https://www.daleseo.com/python-datetime/ [파이썬] datetime 모듈로 날짜/시간 처리하기 Engineering Blog by Dale Seo www.daleseo.com 2021. 5. 15.
[문제해결] csv 파일의 한글이 깨진다면? (csv 포맷 변경, 통일시키는 방법) 분명히 utf-8로 인코딩해서 csv파일을 저장했는데이렇게 한글이 깨지고 있다. 하지만 메모장으로 보면 또 잘나온다. 해결방법은 2가지가 있다.1. csv파일을 ANSI 포맷으로 바꿔서 저장하기엑셀로 파일 열기 > 다른이름으로 저장 > 저장 버튼 옆의 인코딩 > ANSI > 저장 2. 엑셀에서 파일을 열때 ANSI가 아닌 utf-8로 열기엑셀 열기 > 상단의 데이터 > 텍스트 클릭 > 한글 깨지는 csv 파일 선택 유니코드 선택 결과화면 2021. 5. 4.
[beautifulsoup] 네이버 모바일 검색 결과를 크롤링한 뒤, csv 파일로 저장하자. 1. 모바일 HTML 태그를 살펴보자 제목이 a태그에 속해있다 2. URL을 살펴보자 URL을 보면 검색어가 쿼리스트링 형태로 나타나있다. 이 URL을 그대로 가져와 복붙하면 다음처럼 아스키코드로 나타난다. 검색어는 query= 문 뒤에 나오며 아스키 코드로 나타난다는 점에 주목하자. query값에 search 변수를 삽입하여 입력한 검색어에 해당되는 데이터를 불러오도록 만들자. 여기서! URL은 아스키코드 형태로 나타나야하므로 아스키코드로 변환시켜주는 quote_plus를 활용하여 quote_plus(search) 를 입력하자. 3. 크롤링 시작하기 html 변수 = 링크를 읽어들인다. soup 변수 = html태그를 저장 html 변수에서 html만을 저장한다. total 변수 = 클래스명 api_t.. 2021. 5. 4.
[beautifulsoup, selenium] 인스타그램 이미지 크롤링해보자! 1. 사전작업 크롬브라우저 버전 체크하기 크롬 브라우저 > 설정 > 좌측하단의 크롬 정보 클릭해서 확인 이제 버전에 맞는 크롬 드라이버를 하단의 사이트에서 다운로드받자. ChromeDriver - WebDriver for Chrome - Downloads Current Releases If you are using Chrome version 91, please download ChromeDriver 91.0.4472.19 If you are using Chrome version 90, please download ChromeDriver 90.0.4430.24 If you are using Chrome version 89, please download ChromeDriver 89.0.4389.23 If y.. 2021. 5. 4.
MS Power Automate asia.flow.microsoft.com/ko-kr/ Power Automate | Microsoft Power Platform 생산성 증대 수백 개의 사전 구축된 커넥터를 이용한 원활한 통합을 통해, 개별 작업에서 대규모 시스템에 이르는 모든 작업에 대해 시간을 절감하는 워크플로를 구축할 수 있습니다. asia.flow.microsoft.com 1. 로그인 후 프로그램 다운로드 2021. 3. 30.
반응형