从 Google 新闻中获取给定时间范围内的结果数量



我想获取指定时间段(如过去六个月(内关键字列表发布的新闻文章总数。

我尝试使用抓取库来抓取谷歌新闻,但使用以下代码无法获得指定时间段的结果:

import scrapy
class QuotesSpider(scrapy.Spider):
name = 'quotes'
allowed_domains = ['google.com']
start_urls = ['https://www.google.com/search?tbs=cdr%3A1%2Ccd_min%3A1%2F1%2F2019%2Ccd_max%3A8%2F1%2F2019&tbm=nws&ei=1tJXXfHLM4-S9QO07onwCg&q=%22Apple+Inc%22&oq=%22Apple+Inc%22&gs_l=psy-ab.3..0l3.48094.50359.0.51273.9.9.0.0.0.0.318.893.0j2j1j1.4.0....0...1c.1.64.psy-ab..6.3.752....0.2cwnwIbhfS4']
def parse(self, response):
item = {
'search_title': response.css('input#sbhost::attr(value)').get(),
'results': response.css('#resultStats::text').get(),
}
yield item

我想创建一个数据框作为最终输出,其中包含在谷歌新闻上找到的实体和结果数量。

选择器似乎有效,但 robotstxt 禁止访问该页面。 您可以通过在 settings.py 中设置以下内容来解决此问题:ROBOTSTXT_OBEY=False.

或者,你可以把它放在你的类中:

class QuotesSpider(scrapy.Spider):
custom_settings = {'ROBOTSTXT_OBEY': False}

请注意,这可能会导致Google禁止您的IP地址,这可以适用于几个页面,但之后会要求验证码挑战

最新更新