Python urllib,urllib2填写表单

时间:2014-04-04 18:04:47

标签: python html webpage urllib

我想用urllib2urllib填充HTML表单。

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的按钮?

2 个答案:

答案 0 :(得分:1)

如果您查看表单操作属性,您可以找出您的表单提交的内容。然后,您可以向该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(跨站点请求伪造)令牌,它嵌入在表单中。你需要一些如何获得它并将其传递给你的帖子。

答案 1 :(得分:-1)

这更像是你用Selenium或类似的东西。或许selenium.webdriver.common.action_chains.ActionChains.click