如何访问谷歌新闻头条链接 解决axios请求不跳转发布商页面问题
成因
- 谷歌新闻的跳转逻辑内置反爬校验,会识别请求的客户端类型:默认axios发送请求时携带的
User-Agent标识为axios/[版本号],和浏览器UA差异明显,谷歌识别到非浏览器请求后,不会触发302重定向到发布商站点,直接返回谷歌新闻列表页。 - 正常浏览器访问该链接时,请求头会携带
Referer字段,值通常为谷歌新闻相关域名地址,axios默认请求不带该字段,也会被校验规则拦截,无法触发重定向。 - 部分场景下axios未配置自动跟随重定向参数,就算谷歌返回了重定向响应,也无法自动跳转到目标地址。
解决方案
你可以通过修改axios请求配置解决该问题,参考配置如下:
const axios = require('axios'); const googleNewsUrl = "https://news.google.com./articles/CBMiiwFodHRwczovL3d3dy5zdGlyaXBlc3Vyc2Uucm8vbGVjdGlhLWRlLXJ1c2EtcGVudHJ1LWNhLXByZXR1cmlsZS1zdW50LW1hcmktZ2F6cHJvbS1udS1zZS1ncmFiZXN0ZS1zYS1vYnRpbmEtYXByb2JhcmlsZS1wZW50cnUtbm9fMjEyNzEwMC5odG1s0gE2aHR0cHM6Ly93d3cuc3RpcmlwZXN1cnNlLnJvL2FtcC5waHA_YXJ0aWNsZV9pZD0yMTI3MTAw?hl=ro&gl=RO&ceid=RO%3Aro"; const response = await axios.get(googleNewsUrl, { headers: { // 模拟桌面端Chrome浏览器的UA "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", // 配置谷歌新闻域名作为来源页 "Referer": "https://news.google.com/" }, // 开启自动跟随重定向,最多跟随5次 maxRedirects: 5 })
如果修改配置后仍然返回列表页,可以直接从返回的HTML内容中提取真实发布商链接:谷歌返回的列表页源码中会包含带目标地址的meta标签或者跳转链接,正则匹配提取后直接访问即可。
内容的提问来源于stack exchange,提问作者Victor Dragnea
相关产品推荐
相关产品推荐

