Scrapy + Python + Xpath:Xpath返回一个空列表

时间:2018-09-21 11:51:42

标签: python xpath scrapy web-crawler

我需要从该页面抓取图像的链接: http://calendar.youtoocanrun.com/events/new-delhi-1/beat-that-run/

enter image description here

我写了这个xpath:

response.xpath('//li[@class="geodir-active-slide"]/img/@src').extract()

返回空列表。它应该已经返回了gif和jpg文件的链接。为什么?

1 个答案:

答案 0 :(得分:3)

问题不在于您的XPath表达式中,而是假设您要查找的元素位于Scrapy下载的页面原始HTML文件中。

Scrapy不会运行任何JavaScript文件,因此在许多情况下,您在Scrapy中获得的响应与在开发人员工具中看到的不同。

如果使用浏览器中的“查看页面源”选项打开相同的网站,则会看到所需的元素不存在。这意味着该元素是使用JavaScript动态生成的。

有一些方法可以解决此问题,我将按以下顺序进行处理:

  1. 检查页面HTML并查找包含所需数据的JS代码;
  2. 在开发人员工具的“请求”面板中检查浏览器正在执行的请求,并尝试查找为您带来该内容的请求;
  3. 使用无头浏览器为您呈现页面;
相关问题