【发布时间】:2018-01-24 14:08:10
【问题描述】:
问题是网站中的某些部分无法通过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,
我遇到的困难在下图中,红圈内,我需要里面的文字内容
感谢您的帮助,或者至少给我一个文档来阅读。
【问题讨论】:
-
请阅读为什么是
screenshot of HTML or code or error is a bad idea。考虑使用基于格式化文本的 HTML 和代码试验来更新问题。 -
我有困难的部分...你能详细说说那些困难吗?
-
@Andersson 我无法直接使用scrapy css选择器获取那些内容,从scrapy的角度来看那部分内容是不存在的,可能是因为它是一个动态页面?
-
没有。此内容似乎是静态的。你能分享你的 CSS 选择器吗?
-
@Andersson 是的,这里是:'#j_p_postlist > div:nth-child(16) > div.d_post_content_main > div.core_reply.j_lzl_wrapper > div.j_lzl_container.core_reply_wrapper > div.j_lzl_c_b_a.core_reply_content > ul > li:nth-child(4) > div > span'。我可以使用与 selenium.webdriver.find_element_by_css_selector() 方法完全相同的选择器来获取文本,但不能使用 scrapy 的 response.css() 方法。
标签: javascript python html selenium scrapy