问题是网站中的某些部分无法通过scrapy直接抓取。因此,我需要使用selenium来获取渲染的页面源,以便我可以访问该某些内容。
我尝试过这个:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(url)
print(driver.page_source)
我在结果页面源中没有发现某些内容,
虽然我可以通过 driver.find_element_by_css_selector()
获取内容
为什么会出现这种情况? 以及如何使用 selenium 和 scrapy 来爬行某个网站,一个例子是这样的:http://tieba.baidu.com/p/5513911529 ,
我遇到困难的部分如下图,红圈内,我需要其中的文字内容
感谢您的帮助,或者至少给我提供一份可供阅读的文档。
最佳答案
用户向下滚动后将显示内容。所以你必须使用JS Executor来向下滚动。请参阅下面我的代码。
driver.get('http://tieba.baidu.com/p/5513911529')
SCROLL_PAUSE_TIME = 0.5
SCROLL_LENGTH = 200
page_height = int(driver.execute_script("return document.body.scrollHeight"))
scrollPosition = 0
while scrollPosition < page_height:
scrollPosition = scrollPosition + SCROLL_LENGTH
driver.execute_script("window.scrollTo(0, " + str(scrollPosition) + ");")
time.sleep(SCROLL_PAUSE_TIME)
time.sleep(5)
print(driver.page_source)
关于javascript - 如何使用selenium和scrapy来爬取某个网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48367292/