URL重定向不适用于请求,Python

时间:2018-12-18 02:47:49

标签: python python-3.x python-requests

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请求中,而我的问题似乎没有得到解决。

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

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

1 个答案:

答案 0 :(得分:0)

没有数据很难分辨,但是您的文本文件中可能会有一行结尾的行在更改URL。您可以将read()更改为:

contents = g.readline().strip()

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

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