码迷,mamicode.com
首页 > 编程语言 > 详细

【20171104早】python爬虫之username,password登陆

时间:2017-11-05 00:30:00      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:safari   验证   port   amp   mozilla   世界   blog   模拟   open   

工欲善其事,必先利其器。网站只能通过交互式登陆吗?当然不是,作为网络蛮荒世界的一个剑客,老黑欲练就自由之剑,呵呵,就是用代码编写可以自动登陆系统的工具,从而获取想要的数据。

简单版:

样板网站:

成绩系统:http://jwc.ecjtu.jx.cn/mis_o/login.htm

账号:jwc

密码:jwc

Now! Let‘s go! go ! go!

  s1:获取实际登陆的url,老黑使用了firefox,live http headers工具,填入账号密码后,获取到实际登陆的url为http://jwc.ecjtu.jx.cn/mis_o/login.php,post信息为: user=jwc&pass=jwc&Submit=%CC%E1%BD%BB

技术分享

  s2:编写python代码模拟登陆,使用到了python中requests

 1 # -*- coding: utf-8 -*-
 2 import sys
 3 import requests
 4 reload(sys)
 5 sys.setdefaultencoding(utf8)
 6 
 7 url = http://jwc.ecjtu.jx.cn/mis_o/login.php
 8 # 1: get 2: post
 9 option = 2
10 if option == 1:
11     url = http://www.kfzhongzhou.com/cyjb_xx.asp?id=15
12 
13 output_file = open(D:\codehub\output.html, w)
14 datas = {user: jwc,
15          pass: jwc,
16          Submit: %CC%E1%BD%BB
17          }
18 headers = {Referer: http://jwc.ecjtu.jx.cn/mis_o/login.php,
19            User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 
20                          (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36,
21            Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8,
22            Accept-Language: zh-CN,zh;q=0.8,
23            }
24 if __name__ == __main__:
25     print 开始!
26     responses = None
27     sessions = requests.session()
28     if option == 1:
29         responses = sessions.get(url)
30     else:
31         responses = sessions.post(url, headers=headers, data=datas)
32     print responses.headers
33     print responses.status_code
34 
35     r2 = sessions.get(http://jwc.ecjtu.jx.cn/mis_o/main.php)
36     context = r2.text
37     output_file.write(context)
38     print 结束!
39     output_file.close()

  解释:构造sessions进行登陆,保证可以下载正常登陆后才能访问道的main.php页面,进行验证是否登陆成功。

  s3:效果,main.php内容被写在本地文件output.html中,用firefox打开后是如下效果

技术分享

  因为这个系统编码的问题导致写入output.html中的内容是乱码,对比一下正常登陆的页面,可以看出是登陆成功了。

技术分享

扩展:优化后可以使用cookie进行登陆,参考文章 地址

 

【20171104早】python爬虫之username,password登陆

标签:safari   验证   port   amp   mozilla   世界   blog   模拟   open   

原文地址:http://www.cnblogs.com/heijuelou/p/7785079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!