首页 > 解决方案 > URL重定向不适用于请求,Python

问题描述

import requests

def extractlink():
    with open('extractlink.txt', 'r') as g:
        print("opened extractlink.txt for reading")
        contents = g.read()
        headers = {'userAgent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}
        r = requests.get(contents, headers=headers)
        print(("Links to " + r.url))
        time.sleep (2)

目前,r.url 只是链接到“extractlink.txt”中的 url

我正在寻找修复此脚本以找到最终重定向的 url 并打印结果。尽管尝试了许多替代方法和故障排除步骤,但问题似乎出在 URL 请求的某个地方,但我的问题似乎并没有像其他问题那样得到解决。

调试时,即使链接在浏览器中重定向为 302,也会r.history读取[]r.status_code读取。403有任何想法吗?

(extractlink.txt 只是一个包含指向重定向/链接缩短器的链接的单行文件)

标签: pythonpython-3.xpython-requests

解决方案


没有您的数据很难判断,但您的文本文件中可能有一行结尾正在更改 URL。您可能会更改read()为:

contents = g.readline().strip()

您也可以尝试使用Session对象执行请求:

with requests.Session() as session:
    r = session.get(contents, headers=headers)

推荐阅读