zoukankan      html  css  js  c++  java
  • 【20171104早】python爬虫之username,password登陆

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

    简单版:

    样板网站:

    成绩系统: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:codehuboutput.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进行登陆,参考文章 地址

  • 相关阅读:
    C语言程序设计第5堂作业
    C语言程序设计第4堂作业
    gets和fgets函数的区别
    编写一个程序实现strcpy函数的功能
    编写一个程序实现strcmp函数的功能
    编写一个程序实现strcat函数的功能
    11-1. 通讯录的录入与显示(10)
    11-0. 平面向量加法(10)
    10-4. 字符串循环左移(20)
    10-3. 字符串逆序(15)
  • 原文地址:https://www.cnblogs.com/heijuelou/p/7785079.html
Copyright © 2011-2022 走看看