我有一个巨大的URL列表,重定向到不同的URL。 我将它们从列表中提供给for循环,并尝试打印重定向的URL无法在Python中获取重定向的URL。尝试使用请求,urllib,urllib2和机械化
第一个重定向的URL可以正常打印。 但是从第二个 - 请求只是停止给我重定向的URL,而只是打印给定的URL
我试着用urllib
,urllib2
和mechanize
实施。
他们给第一个重定向的URL罚款,然后抛出第二个错误,并停止。
任何人都可以让我知道为什么会发生这种情况吗?
下面是伪代码/实施:
for given_url in url_list:
print ("Given URL: " + given_url)
s = requests.Session()
r = requests.get(given_url, allow_redirects=True)
redirected_url = r.url
print ("Redirected URL: " + redirected_url)
输出:
Given URL: www.xyz.com
Redirected URL: www.123456789.com
Given URL: www.abc.com
Redirected URL: www.abc.com
Given URL: www.pqr.com
Redirected URL: www.pqr.com
你有没有看着'r.status_code'和'河text'?也许其他网站不喜欢你的'用户代理'字符串 - 即他们不想要机器人的请求。 – Imran
当我使用机械化 - 我试过br.set_handle_robots(False)。 –
请查看'r.status_code'和'r.text'来查看是否有消息表明您被阻止。 'br.set_handle_robots(False)'只是指示'mechanize'忽略网站的'robots.txt'。它不会影响该网站是否会阻止您。 – Imran