python网页登录_python 登陆一个网站

今天想用python写一个登陆的脚本,搜了一下,网上挺多的,看了一些后写了个登陆虎扑论坛的脚本.

原理:

只要在发送http请求时,带上含有正常登陆的cookie就可以了。

1.首先我们要先了解cookie的工作原理。

Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。

2.之后我们要获取到用户正常登录的cookie.

python提供了cookieJar的库,只要把cookieJar的实例作为参数传到urllib2的一个opener里面。

然后访问一次登录的页面,cookie就已经保存下来了。之后通过这个实例访问所有的页面都带有正常登陆的cookie了。

1 #coding=utf-8

2 importsys3 reload(sys)4 sys.setdefaultencoding('utf8')5

6 importurllib, urllib2, cookielib7 from bs4 importBeautifulSoup8

9 defloginHupu(url,username,password):10 cookie =cookielib.CookieJar()11 cookie_handler =urllib2.HTTPCookieProcessor(cookie)12 opener =urllib2.build_opener(cookie_handler)#伪装成一个正常的浏览器,避免有些web服务器拒绝访问

13 opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]14

15 #需要填充的表单数据 chrome浏览器下下可以F12-NETWORK查看

16 formData ={17 'username': username,18 'password': password,19 }20 data =urllib.urlencode(formData)21

22 #以POST的方式访问登陆页面,访问之后cookieJar会自动保存cookie

23 opener.open(url,data)24 #以带cookie的方式访问页面

25 page =opener.open(url)26

27 soup =BeautifulSoup(page.read())28

29 returnsoup30 if __name__ == '__main__':31 soup = loginHupu('http://my.hupu.com','你自己的用户名','你的密码')32 print soup.prettify()

POST请求中的表单数据以及需要伪装的浏览器的数据都可以通过chrome浏览器查看,通过一些抓包工具应该也能看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值