Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python使用请求提交Web表单_Python_Webforms_Urllib - Fatal编程技术网

Python使用请求提交Web表单

Python使用请求提交Web表单,python,webforms,urllib,Python,Webforms,Urllib,所以我需要使用python对网站进行爬网,但是我在尝试提交表单时发现了一个问题。我得到的响应与表单相同,而不是提交表单后的结果。我尝试使用requestslibrary/mechanize/urllib 代码包含以下请求: url = "http://www.justiceservices.gov.mt/courtservices/Judgements/search.aspx?func=selected" payload = {'ctl00$ContentPlaceHolderMain$sear

所以我需要使用python对网站进行爬网,但是我在尝试提交表单时发现了一个问题。我得到的响应与表单相同,而不是提交表单后的结果。我尝试使用requests
library/mechanize/urllib

代码包含以下请求:

url = "http://www.justiceservices.gov.mt/courtservices/Judgements/search.aspx?func=selected"
payload = {'ctl00$ContentPlaceHolderMain$search_selected_panel$tb_date_from':'',
           'ctl00$ContentPlaceHolderMain$search_selected_panel$tb_date_to':'',
           'ctl00$ContentPlaceHolderMain$search_selected_panel$dd_court':108,
           'ctl00$ContentPlaceHolderMain$search_selected_panel$dd_judiciary':'',
           'ctl00$ContentPlaceHolderMain$search_selected_panel$tb_litigant1':'',
           'ctl00$ContentPlaceHolderMain$search_selected_panel$tb_litigant2':'',
           'ctl00$ContentPlaceHolderMain$search_selected_panel$tb_keywords':'',
           'ctl00$ContentPlaceHolderMain$search_selected_panel$keywords':'rb_keywords_matching_all',                    
           'ctl00$ContentPlaceHolderMain$search_selected_panel$bt_search':'Search',
           'ctl00$ContentPlaceHolderMain$search_selected_panel$result_count_panel$dd_result_count':10}
headers = {'content-type': 'application/x-www-form-urlencoded'}
r = requests.post(url,payload,allow_redirects=True)
print r.headers
print r.text

我需要发布额外的数据吗?或者我的方法是错误的形式类型。该网站使用web表单。

如果查看请求源,您会发现post忽略了args。如果没有时间进行测试,您可能需要执行以下操作:

r = requests.post(url, data=payload, allow_redirects=True

没有,还是没什么。我想我在发送数据时遗漏了一些东西。这就好像我试图提交一个空表单。在实际查看页面后,我认为问题在于那里没有表单。它从来没有被提交过,我们也不知道数据实际发布到哪里,表单上的提交按钮是由js函数处理的,很可能该页面上的帖子没有任何作用。是的,这是一种旧技术,我必须循环浏览法庭选项并提交表单。我知道这很难,但我必须为一项任务而做。我真的不知道该怎么做,因为我说,没有表单要提交,我猜你必须以某种方式调用附加在提交按钮上的js。(我向该页面提交了一篇文章(填写了所有字段),只返回了该页面,当你在没有正确信息的情况下手动提交表单时,不会生成任何错误消息)