我在 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'
的所有可能值>(因为状态列表取决于国家/地区的值)。我该怎么做?
感谢阅读我的问题。
最佳答案
在检查网络日志时,学分:@P.hunter,我看到一个请求被发送到 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 的正确指导。
关于python - 在 Python 中填写动态在线表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50637847/