python - 为什么这段代码中的 Scrapy Selector Xpath 结果总是 None ?
问题描述
专业数据猎人,我试图抓取一个最初仅列出 5 个项目的网页,然后通过单击“查看更多”按钮列出所有其他项目。我试图将按钮内的链接传递给主要响应:定位器是按钮 XPath。
locator = "//div[@class='sc-AxjAm sc-pscky dyWQkt']/div[@class='ais-InstantSearch__root']/div[@class='sc-AxjAm sc-pscky btewui']/div[@class='sc-AxjAm sc-pscky cZkcda']/a[@class='sc-pQEbo dpfZiE xz9rvh-0 iJZnxt']/@href"
see_more = response.xpath(locator).extract_first()
if see_more is not None:
link = response.urljoin(see_more)
yield scrapy.Request(url=link, callback=self.parse)
即使在单击按钮之前,我总是得到“无”的结果:我尝试了这个函数来测试结果:
def parse(self, response):
yield {
'see_more_link' : response.xpath("//div[@class='sc-AxjAm sc-pscky dyWQkt']/div[@class='ais-InstantSearch__root']/div[@class='sc-AxjAm sc-pscky btewui']/div[@class='sc-AxjAm sc-pscky cZkcda']/a[@class='sc-pQEbo dpfZiE xz9rvh-0 iJZnxt']/@href").extract_first()
}
解决方案
推荐阅读
- charts - 添加新节点后无法使 Grahviz 的边缘笔直并正确渲染
- netsuite - Netsuite 在客户记录中多次插入地址
- java - 如何在不使用模型的情况下将 JCheckBox 列添加到我的 JTable?
- python - 模型提供了很好的训练和测试准确性,但在进行预测时效果不佳
- selenium - 将最新的 Microsoft Edge (Win10) 浏览器添加到 Selenium Grid
- javascript - 在 POST 期间如何解决此 422 错误?
- reactjs - 无法使用 npx create-react-app 创建新的反应应用程序
- android - 为什么谷歌 Admob 广告不显示
- elixir - mariaex lib 无法正确处理 utf8 本地语言 [elixir]
- docker - 来自守护程序的错误响应:客户端版本 1.40 太新。支持的最高 API 版本为 1.39