본문 바로가기

programmer/python

python 크롤링 해보기

1. 크롬 버전 확인 및 라이브러리 다운로드

1.1 크롬 버전 확인

chrome://settings/help

1.2 크롬 api 다운로드

다운로드 받은 api파일은 주피터가 실행된 폴더에 옮겨 준다.

https://sites.google.com/a/chromium.org/chromedriver/downloads

 

Downloads - ChromeDriver - WebDriver for Chrome

WebDriver for Chrome

sites.google.com

 

2. import 설정

jupyter lab 이 설치되어 있다고 가정하고 수행한다.

2.1 패키지 설치

블럭을 하나씩 만들어 설치를 해야한다. jupter lab의 경우 pip 앞에 !를 붙여 실행해야 한다.

!pip install -U pip

!pip install -U selenium

!pip install bs4

2.2 패키지 import

# 설치가 필요한 패키지
from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
from bs4 import BeautifulSoup
import requests

 

3. 실행해 보기

3.1 브라우저 제어를 위한 객체 생성


크롬이 모바일 장치로 인식되도록 속성을 변경

PC사이트는 모바일용 웹 사이트보다 구조가 복잡하기 때문에 HTML DOM을 취득하기 다소 어려운 면이 있다. ChromeDriver에 옵션을 지정하여 객체를 생성하면 대상 웹 사이트가 모바일 브라우저로 인식하도록 지정할 수 있다.

options = webdriver.ChromeOptions()
mobile_emulation = {"deviceName": "Nexus 5"}
options.add_experimental_option("mobileEmulation", mobile_emulation)

3.2 크롬 드라이버 실행

윈도우 환경에서는 '.exe'를 표시하고 리눅스는 '.exe'가 없다.

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('window-size=1920,1080')

driver = webdriver.Chrome('chromedriver.exe', options=options)
# 모든 동작마다 크롬브라우저가 준비될 때 까지 최대 5초씩 대기
driver.implicitly_wait(5)

<출력>

3.3 쿠팡 사이트 접속 해 보기

 

url = 'https://www.coupang.com/'

# 드라이버 연결
driver = webdriver.Chrome()
# 웹사이트 이동
driver.get(url)
time.sleep(1)

3.4 쿠팡 검색 해 보기

 

search_box = driver.find_element_by_id('headerSearchKeyword')

actions = webdriver.ActionChains(driver).send_keys_to_element(search_box, '캠핑용품').send_keys(Keys.ENTER)

actions.perform()
반응형
사업자 정보 표시
라울앤알바 | 장수호 | 서울특별시 관악구 봉천로 13나길 58-10, 404호(봉천동) | 사업자 등록번호 : 363-72-00290 | TEL : 010-5790-0933 | Mail : shjang@raulnalba.com | 통신판매신고번호 : 2020-서울관악-0892호 | 사이버몰의 이용약관 바로가기