关于python3实现cookie登录问题

来源:互联网 发布:遗传算法神经网络 pid 编辑:程序博客网 时间:2024/06/13 01:49

尝试写了个小爬虫,抓点虎扑上面的发帖信息,但发现查看到一定页数后以及一些用户资料信息时,需要进行用户登录。

于是在网上找了些资料,发现总是失败,而且虎扑的登录有15分钟重复登录则要输入验证码的限制。后来几经周转和向他人请教,方才实现。

现将思路整理下来:

第一步,确定post数据的页面(post给网站你的用户名、密码等信息)

我之前一直是用http://passport.hupu.com/login,在用浏览器抓取post信息的时候,也没有仔细观察,

其实对于虎扑而言,需要post数据的页面是:http://passport.hupu.com/pc/login/member.action

第二步:封装cookie信息

cookie = http.cookiejar.CookieJar()cookieProc = urllib.request.HTTPCookieProcessor(cookie)opener = urllib.request.build_opener(cookieProc)urllib.request.install_opener(opener)

写header和postdata数据:

headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',  
           'Referer' : 'https://passport.hupu.com/pc/login?project=my&from=pc'}  
 
postData = {
            'username' : 'xxx',  
            'password' : 'xxx' 
            } 

第三步:

写个函数,进行页面上的请求:

def GetUrlRequest(iUrl,iStrPostData,header):    postdata=urllib.parse.urlencode(iStrPostData)    postdata=postdata.encode(encoding='UTF8')    req= urllib.request.Request(               url = iUrl,               data = postdata,               headers = header)    result=urllib.request.urlopen(req).read().decode("UTF8")    return result


第四步:

执行了上面的函数后,爬虫程序便已经具有cookie信息,以后在访问其他页面的时候,直接传入header和url即可,不要重复传入postdata,

同样,也不要再次执行上面的函数操作。

    req=urllib.request.Request(url=url,headers=headers)    result=urllib.request.urlopen(req).read().decode("gbk")    print(result)

url可以是你要访问的其他页面了。




0 1
原创粉丝点击