我想使用 Python 访问 HTTP 网站、填写表单、提交表单并检索结果。
哪些模块适合该任务?
我们无法为您提供详细说明,因为您从未向我们提供问题的详细信息。但是,很可能您想使用 urllib2 来获取 HTML 页面:
import urllib2
response = urllib2.urlopen('http://python.org/')
html = response.read()
然后,您应该解析表单,找出您需要发送的所有数据字段及其名称,然后根据表单类型创建您自己的 POST 或 GET 请求。
要发送 POST 请求:
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()
要发送 GET 请求:
import urllib2
import urllib
data = {}
data['name'] = 'Somebody Here'
data['location'] = 'Northampton'
data['language'] = 'Python'
url_values = urllib.urlencode(data)
url = 'http://www.example.com/example.cgi'
full_url = url + '?' + url_values
data = urllib2.urlopen(full_url)