我试图测试网站,看看他们是否从HTTP重定向到HTTPS。这是我的代码。
import requests
url = "http://www.google.com"
page = requests.get(url)
if page.history:
print ("Request was redirected")
for resp in page.history:
print (resp.status_code, resp.url)
print ("Final destination:")
print (page.status_code, page.url)
else:
print (page.headers)
print (page.history)
print(page.url)
print(page.status_code)
print ("Request was not redirected")
当我使用各种在线标题检查器测试http://www.google.com
时,我获得了302重定向到https网站。但是,当我运行上面的代码时,我得到一个200状态代码和一个页面结果。但是,当我使用像http://fb.com
这样的网站运行代码时,我得到以下结果。
Request was redirected
301 http://fb.com/
302 http://www.facebook.com/?_rdr
Final destination:
200 https://www.facebook.com/
这只是一些谷歌的事情,还是我错过了什么。
答案 0 :(得分:0)
Google根据用户代理字符串做了很多魔术。尝试抓取
page = requests.get(url, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'})
或使用其他一些用户代理字符串,看看是否会改变行为。
另外,请注意,如果您使用脚本访问Google,则只要您被阻止并且至少看到验证码,即使您拥有真实的用户代理字符串,也不会花费很长时间。