我正在浏览邮政编码并从此网站http://www.airnow.gov/index.cfm?action=school_flag_program.sfp_createwidget
这是表单和输入元素:
<form name="groovyform">
<input type="text" name="Title" id="Title" size="20" maxlength="20" />
<input type="text" name="Zipcode" id="Zipcode" size="10" maxlength="10" />
我的问题是,如果表单元素中没有属性(例如action
或method
),如何发布帖子请求?
我的代码(我使用request.get
参数尝试了params
,使用request.post
参数尝试了data
:
url = 'http://www.airnow.gov/index.cfm?action=school_flag_program.sfp_createwidget'
data_to_send = {'zipcode ':'37217',
'Title': 'ph'}
response = requests.get(url, params=data_to_send)
contents = response.text
print contents
只返回url
的HTML,但我想要发布data
时获得的页面的HTML。换句话说,我认为request.get
不提交我的数据,而且我认为它与action
或method
属性有关。
启发我!
谢谢!
答案 0 :(得分:2)
该表格不打算在任何地方提交。它只是为了Copy
按钮的利益而存在:
<input type="button" value="Copy" onclick="copy(document.groovyform.simba.value)" />
document.groovyform
Javascript函数中还有一些对buildCall
的引用,当您点击Build your widget
时会运行该函数。
这是一种旧式的Javascript编程。现在,大多数人会为这些元素分配ID,并使用document.getElementById()
来访问它们,因此不需要将它们包装在表单中。但在开发该方法之前,访问DOM元素的方式取决于表单自动添加为document
的属性,输入元素是包含表单的属性。
答案 1 :(得分:1)
阅读理解,我可以学习它。
答案 2 :(得分:0)
好吧,就像巴马尔所说的那样,我发布的<form>
不应该被提交。我应该填写的表格(页面顶部)包含以下内容:
<form name="frmZipSearch" method="get" style="width:178px; float:left;">
Zip Code:
<input name="zipcode" type="text" size="5" maxlength="5" height="20">
现在我的代码正常运作。
url = 'http://www.airnow.gov/index.cfm?action=airnow.local_city&zipcode=37217&submit=Go'
data_to_send = {'zipcode':'37217'}
response = requests.get(url, data=data_to_send)
contents = response.text
print contents
谢谢Barmar,指导我走正确的道路。