首页 > 解决方案 > 使用 Python 抓取网页时绕过 cookie 协议页面

问题描述

在抓取重定向 google url 后,我遇到了 google 协议页面 cookie 的问题。

我正在尝试从 Google 新闻 uri 上的不同页面中抓取,但是当我运行此代码时:

req = requests.get(url,headers=headers)

with "headers" = {'User-Agent': 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/534.1 (KHTML, like Gecko) Chrome/6.0.422.0 Safari/534.1', 'Upgrade-Insecure-Requests': '1', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'DNT': '1', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'it-IT'}
and for example URL = https://news.google.com/./articles/CAIiEMb3PYSjFFVbudiidQPL79QqGQgEKhAIACoHCAow-ImTCzDRqagDMKiIvgY?hl=it&gl=IT&ceid=IT%3Ait 

the "request.content" is the HTMLs code of agreement cookies page by Google.

我也尝试将重定向链接转换为普通链接,但响应为我提供了指向此的重定向链接

我有与此问题相关的相同问题(如何在使用 Python 进行网络抓取时绕过 cookie 协议页面?)。

无论如何,其中提出的解决方案仅适用于特定站点。

注意:整个代码直到几周前才有效。

标签: pythonweb-scrapingcookies

解决方案


我通过添加行解决了这个问题

'Cookie':'CONSENT=YES+cb.20210418-17-p0.it+FX+917; '

到请求头。

尽管请求返回的页面仍然是 Google 页面,但该页面包含指向发出请求的站点的链接。

所以,一旦我得到了这个页面,我就做了更多的抓取,这样我就可以获得链接并开始我想要的请求。


推荐阅读