在python列表中获取javascript结果

getting the javascript results in python list

本文关键字:javascript 结果 获取 python 列表      更新时间:2023-09-26

我使用这个网站来下载印度各区的纬度信息。

http://india.csis.u-tokyo.ac.jp/

我可以使用python获得给定州的所有地区吗?例如,如果我选择邦:马哈拉施特拉邦,我将在下一个下拉列表中获得Akola, Raigarh等地区的列表。我需要这些信息作为一个python列表。

我可以看到一个javascript函数被调用,它正在从/api/目录获取数据。

function setDistrictList() {
    var selected = "";
    state = $("#state_list").val();
    districts = {};
    url = "/api/getDistrictList";

我是否可以使用python以编程方式获得这个地区列表?

更新:

我已经尝试了这个函数。但这返回结果,而不是我期望的Java Script下拉列表。

def __getVillageMarkersFromWeb(self,query, state_code=None, district_code=None):
    stateString = '"state":"' + state_code + '"' if state_code is not None else ""
    districtString = ',"district":"' + district_code + '"' if district_code is not None else ""
    f_param = '{' + stateString + districtString + '}'
    params = urllib.urlencode({"q":query,"f":f_param})
    url = "http://india.csis.u-tokyo.ac.jp/geocode-cgi/census_ajax_json.cgi"
    http = httplib2.Http()
    response, markers_xml = http.request(url, "POST", params)
    dom = minidom.parseString(markers_xml)
    markers = dom.getElementsByTagName("marker")
    return markers

可以,使用BeautifulSoup。

BeautifulSoup允许您在使用Requests/urllib/urllib2从页面获得标记后,以特定类/id为目标元素。

然后你可以遍历你的BS对象并将每个对象保存到你的列表中。

如果页面上的内容是用JavaScript生成的,那么PhantomJS可以在抓取标记之前模拟JS。