使用python请求库将数据发布到搜索框

时间:2014-11-08 05:19:25

标签: python python-requests

我想弄清楚,为了将数据发布到正确的形式,关键是什么,价值是多少。在我看来,我认为具有方法获取的html标签的ID是关键。我放在文本框中的文字应该是值。

<form id="searchbox_form" class="searchbox_form form man" method="get" action="/submit_search/"     autocomplete="off">

所以问题是,在将文本放入搜索框后,如何获取网页html? 谢谢大家,这是我的代码

import requests
r = requests.post("http://www.trulia.com/homepage.php?", 
                  data={'searchbox_form form man':'7420 Westlake Ter #1210 20817'})
with open("test.html", "w") as f:
    f.write(r.text.encode("utf-8"))

2 个答案:

答案 0 :(得分:2)

表单使用HTTP GET方法提交,提交的网址位于表单的action属性中。因此,您要在http://www.trulia.com/submit_search/

中提交您的查询

现在你可以这样做,

from urllib import urlencode
import requests
params = {'search': '7420 Westlake Ter #1210 20817'}
search_url = 'http://www.trulia.com/submit_search/?'
url = search_url + urlencode(params)
r = requests.get(url)
# now you get your desired response.

您可以使用firebug或开发人员工具查看请求。

如果它是python 3.x,标记为,则导入应为 from urllib.parse import urlencode

答案 1 :(得分:0)

尝试删除?在您的网址中。 然后更改“searchbox_form”表单man&#39;只是&#39; searchbox_form&#39;。

您的请求对象将如下所示:

r = requests.post("http://www.trulia.com/homepage.php", data={'searchbox_form': '7420 blahblah'})

我认为这可行。

? URL末尾的标记表示您在URL中提交查询字符​​串。 由于您发布了w /表单数据,因此您帖子中的数据字典(data = {})会负责添加查询字符串。