2014-04-04 72 views
3

我想用urllib2urllib填寫HTML表單。Python urllib,urllib2填寫表單

import urllib 
import urllib2 

url = 'site.com/registration.php' 
values = {'password' : 'password', 
      'username': 'username' 
      } 

data = urllib.urlencode(values) 
req = urllib2.Request(url, data) 
response = urllib2.urlopen(req) 
the_page = response.read() 

但在形式的端部是一個button(input type='submit')。如果您不點擊按鈕,則無法發送數據input(type text)

如何單擊帶有urlliburllib2的按鈕?

+0

提交表單或「單擊按鈕」實際上意味着發送POST請求...所以只需使用urllib2來完成,o更容易,可以用python-requests來完成。讓我知道你是否需要一個例子。 – Curro

回答

1

如果你看看你的表單動作屬性,你可以找出你的表單提交的URI。然後,您可以向該uri發出發佈請求。 這是可以做到這樣的:

import urllib 
import urllib2 

url = 'http://www.someserver.com/cgi-bin/register.cgi' 
values = {'name' : 'Michael Foord', 
      'location' : 'Northampton', 
      'language' : 'Python' } 

data = urllib.urlencode(values) 
req = urllib2.Request(url, data) 
response = urllib2.urlopen(req) 
the_page = response.read() 

https://docs.python.org/2/howto/urllib2.html

您也可以使用請求庫,這使得它容易得多。你可以閱讀它here

你可能需要考慮的另一件事是嵌入在窗體中的CSRF(跨站請求僞造)令牌。你將不得不通過一些如何獲得它並將它傳遞給你的帖子。