三种方法,1211,亲测都行,因为没有验证码适合新手!
刚开始学,有好多不懂的地方,交流邮件 helloxidian@
(1)参考了[Python]网络爬虫(十):一个爬虫的诞生全过程(以山东大学绩点运算为例)/pleasecallmewhy/article/details/9305229
(2)第三种参考了:/davisqi/blog/671014
有几个疑问:
(1)Post的数据有_xsrf、email、password、等等 到底多少才够用,是试出来的么?
(2)人人网不用heads 数据也行。
#-*-coding:utf-8-*-import urllibimport urllib2import cookielibimport HTMLParserimport urlparseimport stringimport refrom bs4 import BeautifulSoup as bsimport requests# 登录的主页面#hosturl = '******'# post数据接收和处理的页面(我们要向这个页面发送我们构造的Post数据)posturl = '/PLogin.do'# 设置一个cookie处理器,它负责从服务器下载cookie到本地,并且在发送请求时带上本地的cookiepps#这句不写 就有问题cj = cookielib.LWPCookieJar()cookie_support = urllib2.HTTPCookieProcessor(cj)opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)urllib2.install_opener(opener)# 打开登录主页面(他的目的是从页面下载cookie,这样我们在再送post数据时就有cookie了,否则发送不成#功)pps 这句不写也没事#h = urllib2.urlopen(hosturl)# 构造header,一般header至少要包含一下两项。 亲测人人网 不用heads 也是可以的headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/0101Firefox/14.0.1'}# 构造Post数据,他也是从抓大的包里分析得出的。postData = {'domain':'logindomain','email': ' ',//你的账号'password': '***'}# 如果用方法三 就将此句屏蔽postData = urllib.urlencode(postData)# 通过urllib2提供的request方法来向指定Url发送我们构造的数据,并完成登录过程request_1 = urllib2.Request(posturl, postData,headers)#第一种方法result=opener.open(request_1)r=result.read()soup = bs(r, 'html.parser')print soup.title.string#第二种方法#response = urllib2.urlopen(request_1)#r = response.read()#soup = bs(r, 'html.parser')#print soup.title.string#print text#第三种方法#s = requests.session()#r = s.post(posturl,postData,headers)#soup = bs(r.text, 'html.parser')#print soup.title.string
如果觉得《python 模拟登陆人人网登陆 -12-11》对你有帮助,请点赞、收藏,并留下你的观点哦!