【发布时间】:2018-11-11 06:23:48
【问题描述】:
我正在使用 Python 上的 RoboBrowser,我正在尝试在网站上填写表格 (here)。现在的问题是表单是动态的。如果您打开链接,您会看到“国家”、“州/地区”、“城市”和“位置”一行。
州/地区行取决于您从下拉菜单中选择的国家/地区,城市取决于州/地区,位置取决于城市。我希望能够为国家/地区的特定价值提取例如州/地区的“价值”。例如,当我编写以下代码时:
>>> import re
>>> from robobrowser import RoboBrowser
>>> browser = RoboBrowser()
>>> browser.open('http://http://www.kidzee.com/admissions-at-kidzee/')
>>> form = browser.get_form()
>>> form
<RoboForm siteid=, adunit=, fname=, lname=, email=, mobile=,country=,state=,
city=, location=0, 6_letters_code=, admission_submit=Submit>
>>> form['country'].options
['','1','2'] #The options presented are India and Nepal.
>>>form['country'].value = '1'
>>>form['state'].options
['']
现在我想做的是获得form['state'].value 和form['country'].value = '1' 的所有可能值(因为状态列表取决于国家/地区的值)。我该怎么做呢?
感谢您阅读我的问题。
【问题讨论】:
-
所以,有 jquery 在幕后运行,打开网络选项卡并选择一个国家/地区,您将看到查询是如何发送到
http://www.kidzee.com/wp-admin/admin-ajax.php?action=state您可以在该 url 发送带有表单数据的请求0 或 1 你会收到数据,快速提问。你打算如何处理验证码? -
1.我不想填写表格。当我更改国家/地区的值时,只需获取正在接收的数据(更改状态值)。 2.我尝试了你所说的,使用
requests.post和你评论中的url和data: 1。它返回的是这样的:<option value= "" selected>--Select State--</option>. -
我现在可以检索数据了。我只需要在发布请求中使用“状态”:“1”作为数据。它显示了现在该国的所有州。感谢您为我指明正确的方向。
标签: python python-3.x forms web-scraping robobrowser