python模擬表單提交(一)

  • 2020 年 1 月 13 日
  • 筆記

以後可能要用到這方面的東西,所以先實踐一下,比如搶火車票。

 第一步:本地搭建一個程序, 如下,代碼很醜陋,別笑

     主要就是一個用戶名,一個密碼框,和一個提交按鈕

<html>  <head><title>Example</title></head>  <body>   <?php     if (isset($_POST["username"])) {       echo "you password is " . $_POST["pwd"];     }     else {       echo "no!";     }   ?>   <form name = "myform" action = "" method = "post">     <label>用戶名:</label><input type="text" name = "username"></input></br>     <label>密碼</label><input type="password" name = "pwd"></input></br>     <input type="submit" name = "ok"></input>   </form>  </body>  </html> 

第二步: 使用工具分析瀏覽器提交的工具,可以用抓包工具。我使用的是火狐瀏覽器,本身就提供有這樣的工具:

   選擇開發者工具,WEB開發者-》WEB控制台-》網絡

第三步:寫python代碼,我也是谷歌找來的,如下

# -*- coding: utf-8 -*-  import re  import urllib  import urllib2  import cookielib      cj = cookielib.CookieJar()  #我們post的表單數據  post_data = urllib.urlencode({'username': 'hhq','pwd': '1000'})  #登錄路徑  path = 'http://localhost:81/'  opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))  opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0')]  urllib2.install_opener(opener)  req = urllib2.Request(path, post_data)  conn = urllib2.urlopen(req)    print urllib2.urlopen(req).read()    

到這裡,print 出來的就是提交表單後的網頁。