Python';s请求未从谷歌新闻中删除正确内容
我试图在以下条件下从谷歌新闻(注:不是通过news.Google.com)中获取所有新闻标题: 一,。关键词, 二,。具体日期范围, iii.按日期排序,以及 能够循环浏览页面 这是具有指定关键字的常规google搜索的链接: 这是我的google的链接,具有按日期和日期范围排序的相同关键字: 这是我的一个代码示例,它能够在不附加任何条件的情况下从常规搜索中刮取标题:Python';s请求未从谷歌新闻中删除正确内容,python,web-scraping,python-requests,google-news,Python,Web Scraping,Python Requests,Google News,我试图在以下条件下从谷歌新闻(注:不是通过news.Google.com)中获取所有新闻标题: 一,。关键词, 二,。具体日期范围, iii.按日期排序,以及 能够循环浏览页面 这是具有指定关键字的常规google搜索的链接: 这是我的google的链接,具有按日期和日期范围排序的相同关键字: 这是我的一个代码示例,它能够在不附加任何条件的情况下从常规搜索中刮取标题: def scrape_news_summaries(topic, pagenum=1): #time.sleep(randi
def scrape_news_summaries(topic, pagenum=1):
#time.sleep(randint(0, 2))
url = "http://www.google.com/search?q="+topic+"&tbm=nws&dpr=" + str(pagenum)
r = requests.get(url)
if r.status_code != 200:
print('status code for ' + url + ' was ' + str(r.status_code))
sys.exit(-1)
soup = BeautifulSoup(r.text, "html.parser")
return soup
scrape_news_summaries("migrant+caravans")
这是更改URL以包含日期范围并按日期对搜索进行排序的代码:
def scrape_news_date_range(query, min_date, max_date, pagenum=1):
url = "https://www.google.com/search?q="+query+"&rlz=1C1GCEA_enUS827US827&tbs=cdr:1,cd_min:"+min_date+",cd_max:"+max_date+",sbd:1&tbm=nws/*,ned=es_sv*/&dpr="+str(pagenum)
r = requests.get(url)
if r.status_code != 200:
print('status code for' + url + 'was' + str(r.status_code))
sys.exit(-1)
soup = BeautifulSoup(r.text, "html.parser")
#return soup
print(soup)
scrape_news_date_range("migrant+caravans", "1/1/2017", "12/1/2017")
它返回的内容似乎与我希望从上面共享的第二个链接中获得的内容不一样,而是返回常规搜索的内容
我非常感谢您的帮助!非常感谢你 在执行请求时,尝试将
User-Agent'header设置为某物,例如headers={'User-Agent':'Mozilla/5.0(X11;Ubuntu;Linux x86_64;rv:71.0)Gecko/20100101 Firefox/71.0'}'。您是否查看过Google如何处理您发送的这些日期参数?如果有一些JavaScript在发出初始请求后处理日期过滤,我不会感到惊讶。您可能是这里的朋友,而不是请求,因为您可能会在访问所查找的数据之前等待JavaScript执行。