微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python urllib2自动填写表格并检索结果

如何解决Python urllib2自动填写表格并检索结果

| 我希望能够在运行此脚本的计算机上查询站点的保修信息。如果需要,它应该能够填写表格(例如说HP服务站点的情况),然后能够检索到结果的网页。 我已经有适当的位来解析报告回去的结果html。我只是在做些什么需要做些麻烦才能对需要放入字段中的数据进行POST,然后能够检索结果页面。     

解决方法

如果您绝对需要使用urllib2,则基本要点是:
import urllib
import urllib2
url = \'http://whatever.foo/form.html\'
form_data = {\'field1\': \'value1\',\'field2\': \'value2\'}
params = urllib.urlencode(form_data)
response = urllib2.urlopen(url,params)
data = response.read()
如果发送POST数据((1ѭ的第二个参数),则请求方法将自动设置为POST。 我建议您帮自己一个忙,并使用机械化功能,这是一种功能全面的urllib2替代品,其作用完全类似于真实的浏览器。许多站点使用隐藏字段,Cookie和重定向,默认情况下,urllib2都不为您处理,而机械化则由您处理。 查看一个使用机械化在Python中模拟浏览器的示例。     ,一起使用urllib和urllib2,
data = urllib.urlencode([(\'field1\',val1),(\'field2\',val2)]) # list of two-element tuples
content = urllib2.urlopen(\'post-url\',data)
内容将为您提供页面来源。     ,我只做了一点,但是: 您已经获得了表单页面的HTML。为您需要填写的每个表单字段提取“ 3”属性。 创建一个字典,将每个表单字段的名称与您要提交的值进行映射。 使用
urllib.urlencode
将字典变成您的帖子请求的正文。 在将表单提交到的URL之后,将此编码数据作为argument5ѭ的第二个参数。 服务器将返回结果网页,或返回到结果网页的重定向。如果是后者,则需要向重定向响应中指定的URL发出“ 6”请求。 我希望这有意义吗?     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。