如何使用scrapy从特定关键词中提取谷歌新闻?

时间:2017-12-20 06:40:44

标签: python scrapy scrapy-shell

我是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

但它返回None。

2 个答案:

答案 0 :(得分:0)

scrapy shell中使用view(response),您会在网络浏览器中看到fetch()

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

您还可以在浏览中关闭JavaScript,然后打开Goog​​le查看标记。

试试这个:

response.css('#search td ::text').extract()

答案 1 :(得分: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]