【发布时间】:2018-05-01 03:38:20
【问题描述】:
我正在编写一个脚本来找出大量缩短的 URL 会导致哪些完整 URL。如果在浏览器中输入 URL,我正在使用请求模块来跟踪重定向并获取最终的 URL。这适用于几乎所有的链接缩短器,但对于来自 disq.us 的 URL 由于我无法弄清楚的原因而失败(即对于 disq.us URL,我得到与输入相同的 url,而当我在浏览器中输入它时,我得到重定向)
下面是一个 sn-p,它正确地解析了 bit.ly-shortened 链接,但由于 disq.us-link 而失败。我使用 Python 3.6.4 和 requests 模块的 2.18.4 版本运行它。 所以不允许我在问题中包含缩短的 URL,所以我会在评论中留下这些。
import requests
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'
url1 = "SOME BITLY URL"
url2 = "SOME DISQ.US URL"
for url in [url1, url2]:
s = requests.Session()
s.headers['User-Agent'] = user_agent
r = s.get(url, allow_redirects=True, timeout=10)
print(r.url)
【问题讨论】:
-
你能提供disqus url的错误信息吗?它对我来说很好。
-
@bro-grammer 没有错误,它只是没有重定向。它会打印我输入的相同 (disq.us/randomalphanum) URL,而如果你把它放在浏览器中,它会将你发送到其他地方。
标签: python python-3.x web-scraping python-requests