python - 使用 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 协议页面?)。
无论如何,其中提出的解决方案仅适用于特定站点。
注意:整个代码直到几周前才有效。
解决方案
我通过添加行解决了这个问题
'Cookie':'CONSENT=YES+cb.20210418-17-p0.it+FX+917; '
到请求头。
尽管请求返回的页面仍然是 Google 页面,但该页面包含指向发出请求的站点的链接。
所以,一旦我得到了这个页面,我就做了更多的抓取,这样我就可以获得链接并开始我想要的请求。
推荐阅读
- spring-boot - 插入两个集合而不阻塞
- android - getString() 与路径连接?
- intellij-idea - 在 Jetbrains IDE 中定义自定义文件类型时,如何定义如何识别名称?
- react-native - 反应原生 WebView 阻止 openUrl
- javascript - 为什么我在react项目中设置了代码拆分,却没有生成异步chunks文件
- android - LinearLayout内部的多个RelativeLayout显示错误
- sql - 在地方之间寻找
- python - 使用 PDFMiner for Python 将 pdf 的所有页面合并为一个文本
- python-3.x - Pandas 中的新出现计数
- javascript - Javascript 在新行上打印