0

我是scrapy的新手,试图从下面的给定链接中提取谷歌新闻:

https://www.google.co.in/search?q=cholera+news&safe=strict&source=lnms&tbm=nws&sa=X&ved=0ahUKEwik0KLV-JfYAhWLpY8KHVpaAL0Q_AUICigB&biw=1863&bih=966

提供了“霍乱”关键字,显示与霍乱关键世界相关的各种新闻的小块我进一步尝试使用scrapy来提取包含单个新闻的每个块。

fetch("https://www.google.co.in/search?q=cholera+news&safe=strict&source=lnms&tbm=nws&sa=X&ved=0ahUKEwik0KLV-JfYAhWLpY8KHVpaAL0Q_AUICigB&biw=1863&bih=966")

 response.css(".ts._JGs._KHs._oGs._KGs._jHs::text").extract()

其中.ts._JGs._KHs._oGs._KGs._jHs::text代表div class="ts _JGs _KHs _oGs _KGs _jHs每个新闻块的。

但它返回无。

4

2 回答 2

0

经过努力,我找到了一种用非常简单的技巧来废弃所需数据的方法,

fetch("https://www.google.co.in/search?q=cholera+news&safe=strict&source=lnms&tbm=nws&sa=X&ved=0ahUKEwik0KLV-JfYAhWLpY8KHVpaAL0Q_AUICigB&biw=1863&bih=966")

和 css 选择器 "class="g" 标记可用于像这样提取所需的块

 response.css(".g").extract()

它返回所有单个新闻块的列表,可以在列表索引的基础上进一步使用,如下所示:

 response.css(".g").extract()[0]

或者

 response.css(".g").extract()[1]
于 2017-12-20T12:23:26.537 回答
0

scrapy shell使用view(response)中,您将在 Web 浏览器中看到您fetch()的 .

Google 使用 JavaScript 来显示数据,但它也可以发送不使用 JavaScript 的页面。但是没有 JavaScript 的页面通常有不同的标签和类。

您也可以在浏览器中关闭 JavaScript,然后打开 Google 来查看标签。

尝试这个:

response.css('#search td ::text').extract()
于 2017-12-20T07:19:24.013 回答