【发布时间】:2016-06-22 21:35:19
【问题描述】:
我正在尝试使用 python 请求模块发出 Post 请求,但我最感兴趣的输入只有一个 id 而没有 name 属性。我见过的所有示例都涉及使用该名称属性。如何为以下表单执行此 Post 请求:
<form id="search" method="post">
<select id="searchOptions" onchange="javascript:keepSearch(this);">
<option value="horses" selected>Horses</option>
<option value="jockeys">Jockeys</option>
<option value="trainers">Trainers</option>
<option value="owners">Owners</option>
<option value="tracks">Tracks</option>
<option value="stakes">Gr. Stakes</option>
</select>
<input type="hidden" id="searchVal" value="horses" name="searchVal">
<input class="input" id="searchInput" type="text" placeholder="Horse Name">
<span class="glyphicon glyphicon-search"></span>
<input type="submit" value="">
<span style="clear: both;">.</span>
</form>
我正在专门查看带有 id="searchInput" 的输入。
目前,我正在尝试这段代码:(这只会让我获得带有搜索栏的原始主页)
data = {
'searchInput': name,
'searchVal' : "horses"
}
r = requests.post(self.equibaseHomeUrl, data=data)
【问题讨论】:
-
JavaScript 函数
keepSearch有什么作用?是否修改页面源? -
您能否安装一个浏览器插件,拦截表单提交并向您显示正在提交的值,然后手动尝试表单以查看实际发送的内容?
-
我还没有安装插件,你会推荐一个特定的插件吗? @padraic 坎宁安,equibase.com/homehorseplayer.cfm
-
可能是实时 HTTP 标头或 Firebug?
标签: python html http web-scraping python-requests