【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:\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進行登陸,參考文章 地址

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM