我正在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['country'].value = '1'获取form['state'].value的所有可能值(因为州列表取决于country的值)。我该怎么做呢?
感谢您阅读我的问题。
发布于 2018-06-01 21:55:35
在检查网络日志credits:@P.hunter时,我发现每当我按下Select Country按钮时,都会向http://www.kidzee.com/wp-admin/admin-ajax.php?action=state发送一个请求。因此,我编写了以下代码来获取数据:
from urllib.parse import urlencode
from urllib.request import Request, urlopen
url = 'http://www.kidzee.com/wp-admin/admin-ajax.php?action=state'
fields = {'state': '1'}
r = Request(url, urlencode(fields).encode())
json = urlopen(r).read().decode()
print(json)现在我正在获取这个国家所需的州。
感谢你的正确方向,@P.hunter。
https://stackoverflow.com/questions/50637847
复制相似问题