Python:从javascript按钮中检索post参数

时间:2017-08-02 14:11:44

标签: javascript python

我正在编写python脚本来获取我所居住的城市公立学校的统计数据。使用以下代码,我得到一个页面的源代码,按页面显示总共247所学校的前100个结果:

import requests
url = "http://www.madrid.org/wpad_pub/run/j/BusquedaAvanzada.icm"
post_call = {'Public title': 'S', 'cdMuni': '079', 'cdNivelEdu': '6545'}
r = requests.post(url, data = post_call)

可以查看该页面here

在该页面上有一个按钮,可以激活一个javascript函数来下载包含所有247个结果的csv文件。我正在考虑使用Selenium来下载这个文件,但是我已经看到,使用Tamper Data,当按下按钮时会发生POST调用,其中参数codCentrosExp与247所大学的代码一起发送。参数如下所示:

CodCentrosExp = 28077877%3B28077865%3B28063751%3B28018392%3B28018393%...(thus up to the 247 codes)

这使我的工作更轻松,因为我不必下载csv文件,打开它,选择代码列等。我可以使用Tamper Data来做,但我的问题是:我怎样才能获得该参数用我的Python脚本,而不必使用篡改数据?

我终于在页面的源代码中找到了参数,并按如下方式提取它们:

schools = BeautifulSoup(r.content, "lxml")
school_codes = schools.findAll(Attrs = {"name": "codCentrosExp", "value": re.compile("^.+$")})[0]["value"]
school_codes = school_codes.split(";")

无论如何,如果有人知道如何回答原来的问题,我将很高兴知道如何做到这一点。

0 个答案:

没有答案