inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

현존 최강 크롤링 기술: Scrapy와 Selenium 정복

실전 크롤링: 브라우저를 제어해서 다양한 데이터 가져오기

트위터 크롤링 html 코드가 많이 바뀐거 같아요

641

chan753

작성한 질문수 5

0

트위터 크롤링 예제 해보고 있는데요 현재 20.7.21일 기준으로 사이트 코드가 다 바뀐거 같은데 현재는 컨테이너 클래스가 안보여서요 ㅠ  위에 코드 보니까 react로 뜨는데 react로 바뀌어서 코드가 기존 html코드 처럼 안나오는걸까요? 이런 경우 어떻게 해야될지 몰르겠어요

웹-크롤링 selenium scrapy

답변 1

0

잔재미코딩 DaveLee

안녕하세요. 일단 웹사이트 변경 부분을 알려주셔서 감사합니다.

실제 웹사이트는 수시로 변경되는 부분은 있어요. 아무래도 실제 웹사이트를 크롤링했을 때의 경험을 드리고 싶었는데, 이 부분은 양해를 부탁드려요. 그렇다해도 여러가지 시도를 해보시면서 직접 해보시는 것이 가장 좋습니다. 이 부분은 꼭 유념해주시면 좋을 것 같아요. 해당 부분은 너무 수시로 바뀌는 부분이 있어서, 다른 부분을 또 고민해보겠습니다. 

그렇다해도 어떻게 새로운 사이트에서 알맞은 태그를 선택할 수 있을지, 또 selenium 과 어떻게 같이 쓸 수 있는지, 참고할 수 있는 부분이기 때문에, 우선은 참고하시면 더 좋을 것 같습니다.

일단 변경된 부분은 다음과 같이 실행하시면 됩니다. 가볍게 구조를 보면서, 크롬 개발자모드로 CSS Selector 를 참조한 후,

article 부분에 실제 내용이 있음을 확인하고, 해당 article 태그 안에서 실제 트윗 내용만 선택하기 위해서

해당 트윗 내용을 선택해서 크롬 개발자모드에서 추출한 CSS Selector 를 관련 트윗들을 모두 트윗할 수 있도록 특정 부분만 선택한 부분을 다 일반적인 태그로 변경하였습니다.

그리고 다음과 같은 코드로 정상 동작함을 확인하였습니다. 

감사합니다.

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

import time

# 드라이버 생성 방법1 (selenium)

# chromedriver = 'C:/dev_python/Webdriver/chromedriver.exe' # 윈도우

chromedriver = '' # 맥

driver = webdriver.Chrome(chromedriver)

driver.get("http://www.twitter.com")

elem = driver.find_element_by_name("session[username_or_email]")

elem.clear()

elem.send_keys("")

elem = driver.find_element_by_name("session[password]")

elem.send_keys("")

elem.send_keys(Keys.RETURN)

time.sleep(5)

data = driver.find_elements_by_css_selector('#react-root > div > div > div > main > div > div > div > div > div > div > div > div > section > div > div > div > div > div > div > article > div > div > div > div > div > div:nth-child(2) > div > div > span')

for item in data:

    print (item.text, '\n')

print (driver.current_url)

print (driver.title)

driver.quit()

코딩을 잘 따라 한 것 같은데 오류가 발생하는 것 같습니다

0

626

1

scrapy를 jupyter 환경에서 할 수 있나요

0

360

1

[실전 크롤링: scrapy 크롤링 팁] 질문있습니다.

0

313

1

[실전 크롤링: 지마켓 크롤링하며, scrapy 실전 활용법 익히기1] 5분50초쯤 질문

0

221

1

[강력/최신 크롤링 기술: Scrapy 로 지마켓 크롤링하기1] 관련 질문

0

279

1

xml을 parsing할때 <을 &lt; 로 인식합니다.

0

335

1

pipelines.py에서 process_item내에서 print문이 작동을 하지 않네요 ㅠ

0

292

3

PhantomJS 문의

0

294

1

selenium 문의

0

329

1

브라우저 제어해서 크롤링하기 - 처음강의 마지막부분 문의

0

3004

1

on error 해결 방법 질문

0

356

1

[팁] 윈도우 cmd 커맨드

0

347

1

[팁]Chrome User Agent 아는법

0

328

1

실전 크롤링: 브라우저를 제어해서 트위터 사이트 로그인 하기 질문

0

254

1

동영상 강의 만드실 때 사용한 툴을 알려주실 수 있을까요?

0

237

1

CSS Selector 에서 질문이 있습니다.

0

435

2

pip install scrapy 오류

0

484

1

셀레니움 실행불가

0

1578

1

실전 크롤링: XPATH와 Selenium 활용해서 페이스북 로그인 하기 에서 질문이 있습니다.

0

227

1

언제 get_text()를 사용하고 또 언제 .text를 사용하나요?

0

287

1

강의교안자료 받을수있을까요?

0

263

1

[강의 9:27관련 질문] price, title 열 위치

0

160

1

div에 있는 클래스가 2개이면 어떻게 하나요?

0

368

1

css 셀렉터에 대해 질문이 있습니다.

0

147

1