【问题标题】:After posting a webform, how do I get the values from the result page?发布网络表单后,如何从结果页面获取值?
【发布时间】:2012-06-15 14:09:26
【问题描述】:

我正在使用请求(根据 Daniel Roseman 的建议)在网络表单上发帖:

url = "http://mascot.proteomics.dundee.ac.uk/cgi/search_form.pl?FORMVER=2&SEARCH=MIS"
data = {'SEARCH':'MIS'}
files = {'JG-C1-1A.mgf' : open('/homes/ndeklein/Cantrell/JG-C1-1.mgf','rb')}    print 

当我打印 r.okr.request 时,我得到 200 ok,所以 POST 工作。当我打印 r.content 时,我没有得到结果页面,而是提交表单的页面的 html。当我从数据中删除 {'SEARCH':'MIS'} 时,r.content 返回一个缺少搜索类型的 html 错误页面,所以我知道如果帖子中有问题,我会收到错误消息。

那么我怎样才能得到结果页呢?

【问题讨论】:

    标签: python http post python-requests


    【解决方案1】:

    老实说,没有理由使用httplib。这是一个低级接口,对于您想要做的事情来说是不必要的复杂。至少,使用urllib2,它将跟随任何重定向。但可能你最好的选择是使用third-party requests module,这会让这一切变得更容易。

    【讨论】:

    • 我在使用多部分/表单数据上传文件时能找到的所有问题都使用code.activestate.com/recipes/146306/fa 作为答案,它使用httplib。你知道我在哪里可以找到使用 urllib 的多部分/表单数据吗?我正在使用 python 2.6 AFAIK 请求是针对 python 3 的(他们放弃了对 python 2.5 的支持)
    • 呃,放弃 Python 2.5 并不意味着它在 2.6 中不起作用,it clearly does。还有here's 多部分文件的文档。
    • 你说得对,谢谢。但是我仍然有同样的问题,我没有得到结果页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 2023-04-06
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    相关资源
    最近更新 更多