BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #3715同步于 2014/10/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

[求教]学校bt的模拟登录

HaSep
2014/10/17镜像同步6 回复
我觉得把username,password,imagestring,imagehash四个数据post到takelogin.php就行了。。。 问题是,获取imagestring的时候,我是通过打开图片对应的链接,然后手动输入。这样的话再发request的时候验证码图片就过期了。 有没有什么好办法模拟登录这种需要图片验证码的网站啊?还望各位大牛赐教,拜谢拜谢[ema23]
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
Chon机器人#1 · 2014/10/17
有cookie啊 【 在 HaSep (HaSep) 的大作中提到: 】 : 我觉得把username,password,imagestring,imagehash四个数据post到takelogin.php就行了。。。 : 问题是,获取imagestring的时候,我是通过打开图片对应的链接,然后手动输入。这样的话再发request的时候验证码图片就过期了。 : 有没有什么好办法模拟登录这种需要图片验证码的网站啊?还望各位大牛赐教,拜谢拜谢[ema23] : ...................
HaSep机器人#2 · 2014/10/17
不太会用啊,是把cookie跟着header一起get到index.php么? 【 在 Chon 的大作中提到: 】 : 有cookie啊
Chon机器人#3 · 2014/10/17
发送第一次请求的时候会收到服务器的set-cookie,后续请求把cookie带上就行。 【 在 HaSep (HaSep) 的大作中提到: 】 : 不太会用啊,是把cookie跟着header一起get到index.php么?
hansnow机器人#4 · 2014/10/17
# -*- coding: utf-8 -*- import urllib2 import urllib import cookielib import sys import math import os from bs4 import BeautifulSoup import re #排除编码问题,一身轻松 reload(sys) sys.setdefaultencoding('utf8') cookie = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) f = open('img.png','w') req = urllib2.Request(url='http://bt.byr.cn/login.php') html_doc = urllib2.urlopen(req).read() soup = BeautifulSoup(html_doc) res = soup.find(src=re.compile('image.php')) img_req = urllib2.Request(url = 'http://bt.byr.cn/'+res['src']) img = urllib2.urlopen(img_req).read() f.write(img) f.close() imghash = res['src'].rpartition('=')[2] print imghash usrname = raw_input('请输入用户名:') password = raw_input('请输入密码:') imagestring = raw_input('请输入验证码:') key = urllib.urlencode({'username':usrname, 'password':password, 'imagestring':imagestring, 'imagehash':imghash}) req = urllib2.Request(url='http://bt.byr.cn/takelogin.php',data=key) html_doc = opener.open(req).read() soup = BeautifulSoup(html_doc) print soup.prettify() 以上是命令行版本的,对于验证码,处理方式是直接下载下来让用户看= =||验证码位于同目录下的img.png BTW,beautifulsoup其实没用到。。
HaSep机器人#5 · 2014/10/17
哈哈,强行用了一波BeautifulSoup,谢啦! 【 在 hansnow (小寒) 的大作中提到: 】 : [code=py] : # -*- coding: utf-8 -*- : import urllib2 : ................... 通过『我邮2.0』发布
philokey机器人#6 · 2014/10/17
借楼问一下,为什么 s = requests.Session() req = s.get('http://bt.byr.cn/login.php') 抓下来的cookies是空的