【发布时间】:2017-03-22 09:04:44
【问题描述】:
我正在尝试将GET 请求发送到一些以User-Agent 为移动设备的网址,以获取重定向的网址(例如-http://m.google.com 而不是http://google.com)。
我也尝试过requests 库和urllib2 - 似乎User-Agent 没有随请求一起发送。还在这里阅读另一个问题,但答案不够清楚 - 如果它只是错误或我错过了什么?
这是我的代码:
try:
req = requests.get(item.url, headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B137 Safari/601.1'}, timeout=5)
except requests.exceptions.HTTPError:
continue
except requests.exceptions.Timeout:
continue
print (item.url + ' => ' + req.url + ' (' + str(req.status_code) + ')')
不过,始终获取计算机版本而不是移动版本。
【问题讨论】:
-
我不确定您为什么认为未发送用户代理。大多数网站 - 包括 Google - 不会重定向到另一个移动 URL,它们只是在主 URL 上显示正确的布局/样式表。
-
如果不是一切都通过检测用户代理来完成怎么办? JS,cookies怎么样?尤其是 JS。
-
检查 out 这个 JS 渲染
-
您可能想使用
fiddler或charles等工具进行调试,在您的请求中设置代理,然后将其与来自您的iPhone 的实际请求进行比较,您会发现缺少什么。 -
@DanielRoseman 因为有些网站我肯定知道有移动版本(如果只是几个链接,我可以不用脚本就可以做到,但它有数百个链接)。
标签: python python-requests urllib2 user-agent