python模擬表單提交(一)

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

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

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

  1. <html>  
  2. <head><title>Example</title></head>  
  3. <body>  
  4.  <?php  
  5.    if (isset($_POST["username"])) {  
  6.      echo "you password is " . $_POST["pwd"];   
  7.    }   
  8.    else {  
  9.      echo "no!";  
  10.    }  
  11.  ?>  
  12.  <form name = "myform" action = "" method = "post">  
  13.    <label>用戶名:</label><input type="text" name = "username"></input></br>  
  14.    <label>密碼</label><input type="password" name = "pwd"></input></br>  
  15.    <input type="submit" name = "ok"></input>  
  16.  </form>  
  17. </body>  
  18. </html> 

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

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

 

 

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

  1. # -*- coding: utf-8 -*-    
  2. import re    
  3. import urllib    
  4. import urllib2    
  5. import cookielib    
  6.  
  7.  
  8. cj = cookielib.CookieJar()    
  9. #我們post的表單數據    
  10. post_data = urllib.urlencode({'username''hhq','pwd''1000'})    
  11. #登錄路徑    
  12. path = 'http://localhost:81/'    
  13. opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))    
  14. opener.addheaders = [('User-agent''Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0')]    
  15. urllib2.install_opener(opener)    
  16. req = urllib2.Request(path, post_data)    
  17. conn = urllib2.urlopen(req)    
  18.  
  19. print urllib2.urlopen(req).read()    

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

代碼有些地方我也不是很理解,找到兩篇文章如下,有空慢慢學習:

http://www.cnblogs.com/yuxc/archive/2011/08/01/2123995.html

http://www.cnblogs.com/icgg/articles/1703392.html

今天就先到這裏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章