使用requests获取Google News链接重定向URL遇报错,如何解决?
Google News RSS链接重定向URL获取问题
问题描述
我需要从Google News的RSS链接中提取最终重定向的目标URL,示例如下:
- 原始RSS链接:
https://news.google.com/rss/articles/CBMiNWh0dHBzOi8vd3d3LmhhbmkuY28ua3IvYXJ0aS9jdWx0dXJlL2Jvb2svMTA4ODU4OC5odG1s0gEA?oc=5 - 期望获取的目标URL:
https://m.hani.co.kr/arti/culture/book/1088588.html
我编写了以下Python代码实现需求:
import requests link = "https://news.google.com/rss/articles/CBMiNWh0dHBzOi8vd3d3LmhhbmkuY28ua3IvYXJ0aS9jdWx0dXJlL2Jvb2svMTA4ODU4OC5odG1s0gEA?oc=5" r = requests.get(link) print(r.url)
大部分链接能正常返回结果,但部分链接(如下方示例)会报错,需要明确报错原因并修复代码:
- 报错的原始RSS链接:
https://news.google.com/rss/articles/CBMiK2h0dHBzOi8vemRuZXQuY28ua3Ivdmlldy8_bm89MjAyMzA0MTYxMTA1NDnSAQA?oc=5 - 期望获取的目标URL:
https://zdnet.co.kr/view/?no=20230416110549
报错原因
- 反爬拦截:Google News会检测请求的合法性,直接使用
requests.get()发送的请求缺少浏览器标识(如User-Agent),会被判定为爬虫,返回403等错误状态码,无法完成重定向流程。 - 目标站验证:部分目标网站(如示例中的ZDNet Korea)会配合Google的反爬逻辑,验证请求的来源和标识,无合法请求头的请求会被阻断,导致重定向失败。
解决方案
通过添加模拟真实浏览器的请求头,让请求通过反爬检测,同时保留requests自动处理重定向的逻辑。具体修改点:
- 加入
User-Agent字段模拟浏览器请求; - 可选添加
Accept-Language等字段提升请求合法性; - 增加异常捕获,避免程序崩溃。
修改后的代码
import requests def get_redirected_google_news_url(rss_link): # 模拟Chrome浏览器的请求头 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36', 'Accept-Language': 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7' } try: # allow_redirects=True为默认值,显式声明更清晰 response = requests.get(rss_link, headers=headers, allow_redirects=True) response.raise_for_status() # 主动抛出HTTP错误异常 return response.url except requests.exceptions.RequestException as e: print(f"请求失败: {str(e)}") return None # 测试报错的示例链接 test_link = "https://news.google.com/rss/articles/CBMiK2h0dHBzOi8vemRuZXQuY28ua3Ivdmlldy8_bm89MjAyMzA0MTYxMTA1NDnSAQA?oc=5" result_url = get_redirected_google_news_url(test_link) if result_url: print(f"重定向后的目标URL: {result_url}")
补充提示
User-Agent可以根据自己常用浏览器的真实标识调整,避免使用过于陈旧的标识;- 若仍出现拦截,可尝试添加
Referer字段(值设为Google News主页),或使用requests.Session()维持会话状态; - 控制请求频率,短时间内大量请求会触发Google的频率限制。
内容的提问来源于stack exchange,提问作者choies1
相关产品推荐
相关产品推荐

