在Python中填写动态在线表单

时间:2018-06-01 07:04:43

标签: python python-3.x forms web-scraping robobrowser

我在Python上使用RoboBrowser,我正在尝试填写网站上的表单(here)。现在的问题是形式是动态的。如果您打开链接,则会看到“国家/地区”,“州/区”,“城市”等行。和'位置'。

州/区行取决于您从下拉菜单中选择的国家/地区,城市取决于州/区和位置取决于城市。我希望能够提取例如'值'国家/地区对该国的特定价值。例如,当我编写以下代码时:

form['state'].value

现在我想要做的就是获得form['country'].value = '1' var result = from p in Dbcontext.tbl_cat join ch in Dbcontext.tbl_cat on p.Id equals ch.Fk_ParentId join np in Dbcontext.tbl_NewsPosition on p.Id equals np.Fk_NewsCatId where np.Fk_NewsID==4 && np.IsMainPosition select new { parentCat = p.CatName, childCat = ch.CatName }; 的所有可能值(因为状态列表取决于国家/地区的值)。我该怎么做呢?

感谢您阅读我的问题。

1 个答案:

答案 0 :(得分:1)

在检查网络日志时,记入:@ 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。