我刚开始学习Scrapy,我不明白为什么下面描述的XPath返回零结果。
我正在尝试构建一个爬行http://www.foodsafety.gov/recalls/recent/index.html
的蜘蛛特别是在我使用Scrapy shell的测试中,我试图提取头条新闻。在Safari的开发者控制台中使用检查器,我确定标题文本的XPath是// div [@id =" recallList"] / h2 / a / text()。在开发者控制台中使用find,我能够使用上述XPath找到25个标题。
但是,当我使用Scrapy shell测试XPath时,我会使用
获得一个空列表>> response.xpath('//div[@id="recallList"]/h2/a/text()').extract()
我正在使用
>> scrapy shell "http://www.foodsafety.gov/recalls/recent/index.html"
抓取网站。
答案 0 :(得分:1)
响应为空结果,因为内容是通过Javascript加载的,目前scrapy不支持。如果您要查看开发者控制台中的network
面板,则会看到另一个请求此网址http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=jsonp1455174771252&q=http://www.fda.gov/AboutFDA/ContactFDA/StayInformed/RSSFeeds/FoodSafety/rss.xml&num=13
的请求,该请求返回json
。您可以使用此网址获取所有数据。