首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python下载某些网页返回数据错误

2013-04-20 
【求助】python下载某些网页返回数据异常import httplibdef con(url,dicNone):contorl0paramsport80

【求助】python下载某些网页返回数据异常
import httplib

def con(url,dic=None):
    
    contorl=0;params="";port=80
    if dic!=None:
        keylist=[];contorl=1
        for i in dic:
            keylist.append(i+"="+dic[i])
        params="&".join(keylist)
        del keylist
    url_path=url.split("/",3)
    if url_path[2].find(":")!=-1:
        url_path[2],port=url_path[2].split(":")
    print url_path,port
    headers = {'Content-type': 'application/x-www-form-urlencoded','Accept': 'text/plain',"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5"}
    h = httplib.HTTPConnection(url_path[2],port)
    h.request(["GET",'POST'][contorl],"/"+url_path[3],params, headers)
    data=h.getresponse().read()
    h.close()
    del h,contorl,params,url_path,url
    return data

def write(x,path="test.txt"):
    f=open("e:\\project\\python\\files\"+path,"w")
    f.write(x)
    f.close()

htm=con("http://180.166.7.150:8880/index.do?province=jx")

write(htm,path="index2.txt")


这是我用的代码,网址是电信wifi认证的获取密码的页面。那个页面有点诡异,我得到的数据总是返回错误 500,而浏览器打开则正常。
另外我用上面的代码打开电信wifi认证首页(https://wlan.ct10000.com/portal4JX/hw)都可以,为什么单单那个页面就不行。


求各位帮帮忙,这是怎么一回事,这问题困扰我一整天了。。。
[解决办法]
前后两个port为何不同?一个80,一个8880
[解决办法]
试了一下,文头得"Accept": "text/html"...
[解决办法]
header增加几项试试
'Accept-Language': 'zh-cn'
'Accept-Encoding':'*'
'Referer':url

另外你应该在浏览器抓包看看是否需要发送cookie,登录一般都少不了这个

还有就是想知道你代码中
h.request(["GET",'POST'][contorl],"/"+url_path[3],params, headers)
红色部分是什么?确定没写错么?

热点排行