使用Python和Curl发布表单

时间:2010-05-19 06:13:16

标签: python curl

我相对较新(就像几天一样)到Python - 我正在寻找一个示例,告诉我如何将表单发布到网站(比如www.example.com)。

我已经知道如何使用Curl。事实上,我编写的C +++代码完全相同(即使用Curl POST一个表单),但我想要一些起点(我可以构建几行),这将告诉我如何使用它蟒。

3 个答案:

答案 0 :(得分:2)

以下是使用urllib和urllib2进行POST和GET的示例:

POST - 如果urlopen()有第二个参数,那么它就是一个POST请求。

import urllib
import urllib2

url = 'http://www.example.com'
values = {'var' : 500}

data = urllib.urlencode(values)
response = urllib2.urlopen(url, data)
page = response.read()

GET - 如果urlopen()只有一个参数,那么它就是GET请求。

import urllib
import urllib2

url = 'http://www.example.com'
values = {'var' : 500}

data = urllib.urlencode(values)
fullurl = url + '?' + data
response = urllib2.urlopen(fullurl)
page = response.read()

如果您使用curl调用它,也可以使用os.system()

以下是一些有用的链接:
http://docs.python.org/library/urllib2.html#urllib2.urlopen
http://docs.python.org/library/os.html#os.system

答案 1 :(得分:0)

curl -d "birthyear=1990&press=AUD" www.site.com/register/user.php

http://curl.haxx.se/docs/httpscripting.html

答案 2 :(得分:0)

有两个主要的Python包用于自动化Web交互:

  • Mechanize
  • Twill

    Twill显然没有更新几年,似乎自2007年12月以来一直处于0.9版本.Mechanize显示几天前的更新日志和版本:2010-05-16,版本为0.2。 1。

    当然,您会在各自的网页中找到列出的示例。 Twill本质上提供了一个类似于解释器的简单shell,而Mechanize提供了一个类和API,例如,您可以使用Python类似字典(__setattr__()方法)语句设置表单值。两者都使用BeautifulSoup来解析“真实世界”(草率标签汤)HTML。 (强烈建议您处理在野外遇到的HTML,并且强烈建议您不要使用自己的HTML编写,以便通过符合标准,验证,解析器的标准。)