网页爬虫 - python爬虫模拟登录网站,总是不成功
黄舟
黄舟 2017-04-17 16:06:03
[Python讨论组]
#!/usr/bin/python  
# -*- coding=utf-8 -*-  
import HTMLParser  
import urlparse  
import urllib  
import urllib2  
import cookielib  
import string
import mechanize  
import re
from bs4 import BeautifulSoup  
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)  
###登录的主页面  
hosturl = 'http://www.iiyi.com/'  
####post数据接收和处理的页面(我们要向这个页面发送我们构造的Post数据)  
posturl = 'http://auth.iiyi.com/?referer=http%3A%2F%2Fwww.iiyi.com%2F' ###从数据包中分析出,处理post请求的url    
###设置一个cookie处理器,它负责从服务器下载cookie到本地,并且在发送请求时带上本地cookie    
cookie_support = urllib2.HTTPCookieProcessor(cj)  
opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)  
urllib2.install_opener(opener)   
###打开登录主页面(他的目的是从页面下载cookie,这样我们在再送post数据时就有cookie了,否则发送不成功)  
h = urllib2.urlopen(hosturl)    
###构造header,一般header至少要包含一下两项。这两项是从抓到的包里分析得出的。  
headers = {
    'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Encoding':'gzip, deflate, sdch',
    'Accept-Language':'zh-CN,zh;q=0.8',
    'Cookie':'cnaday_auth_visit=f92747b31d48d18d76a6740d45da1020; CNZZDATA30049871=cnzz_eid%3D969359211-1439954392-http%253A%252F%252Fiapi.iiyi.com%252F%26ntime%3D1440377229; CNZZDATA30080017=cnzz_eid%3D1280405677-1439955491-http%253A%252F%252Fiapi.iiyi.com%252F%26ntime%3D1440378214; __utma=1.881348118.1439959673.1440148394.1440379536.10; __utmb=1.1.10.1440379536; __utmc=1; __utmz=1.1440379536.10.10.utmcsr=iapi.iiyi.com|utmccn=(referral)|utmcmd=referral|utmcct=/v1/tnav; Hm_lvt_f6462c453d025b6235ffc49efab63e1e=1439965661,1440051563,1440142571,1440341373; Hm_lpvt_f6462c453d025b6235ffc49efab63e1e=1440379536; auth_auto=eb91D55fosxgVGs0%2BK22Se4qfMiWh4AN3QD6%2FzcLxwiSQpjexJmBomJmN7I6EseUqIoxoM4',
    'Host':'auth.iiyi.com',
    'If-Modified-Since':'Mon, 24 Aug 2015 01:25:32 GMT',
    'Proxy-Connection':'keep-alive',
    'Referer':'http://iapi.iiyi.com/v1/tnav?site=mh&0.7480784514918923&op=logout&referer=http%3A%2F%2Fwww.iiyi.com%2F',
    'Upgrade-Insecure-Requests':'1',
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36',
    }  
###构造Post数据,他也是从抓大的包里分析得出的。  
postData = {'username' : 'zzdaye@163.com', ###你的用户名  
            'password' : 'xxxx', ###你的密码
            'auto' : '0',
            'vcode':'',            
           }   
###需要给Post数据编码  
post_Data = urllib.urlencode(postData)    
###通过urllib2提供的request方法来向指定Url发送我们构造的数据,并完成登录过程  
request = urllib2.Request(posturl, post_Data, headers)  
response = urllib2.urlopen(request)  
print response  
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
阿神

cookie_support = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.buildopener(cookiesupport
这里有个拼写错误,,,你没看见吗,,,上面有下划线下面的cookiesupport没了,,,

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号