主要场景是这样的,我有一段 URL ,用于对百度贴吧进行签到
使用 HttpConnection 的代码如下:
conn = http.client.HTTPConnection('tieba.baidu.com', 80)
conn.request('GET', '/mo/q---{0}/sign?tbs={1}&fid={2}&kw={3}'.format(urllib.parse.quote(BAIDUID, 'utf-8'), tbs, fid, urllib.parse.quote(tieba, 'utf-8')))
resp = conn.getresponse()
使用 urlopen 的例子如下
url = 'http://tieba.baidu.com/mo/q---{0}/sign?tbs={1}&fid={2}&kw={3}'.format(urllib.parse.quote(BAIDUID, 'utf-8'), tbs, fid, urllib.parse.quote(tieba, 'utf-8'))
urllib.request.urlopen(url)
两个 URL 地址是完全一样的,然而使用 HttpConnection 的情况下,虽然返回的 code 是 200 ,同时 read 出来的也是正常打开贴吧的源代码,可是贴吧却没有签到成功, 可是使用 urlopen 这个方式却签到成功了。
请问下各位,这是什么原因导致的呢?
1
q397064399 2016-09-08 18:56:50 +08:00
建议用 fiddler4 抓包看看是不是 useragent 有区别,最好还是分析下 http 报文 http 报文还是很好懂的
|
2
q397064399 2016-09-08 18:59:09 +08:00
我猜测是 useragent 的原因
|
3
binux 2016-09-08 19:22:19 +08:00
为什么要这么折磨自己?
|
4
twlsoft OP @q397064399 嗯嗯,明白,我去试一试~谢谢~~
|