Как скачать. XML файл с веб-сайта через кнопку JavaScript с использованием Python - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь загрузить настроенный файл XML с этого сайта: http://data.un.org/Data.aspx?d=CLINO&f=ElementCode: 11; Код статистики: 01 & c = 1,2,5,17,18,44 & s = CountryName: as c, WmoStationNumber: as c, StatisticCode: asc & v = 1

Метод, с которым я наиболее знаком, использует pd.read_csv, но в этом случае щелчок правой кнопкой мыши по ссылке для скачивания и копирование адреса ссылки создает :

javascript:Download('xml','CLINO','ElementCode:11;StatisticCode:01','s=CountryName:asc,WmoStationNumber:asc,StatisticCode:asc','c=1,2,5,17,18,44','');

Я попробовал решение, опубликованное здесь , но, к сожалению, процесс отклонился на шаге 4.

Используя python, как мне получить доступ к. xml файл для скачивания и сохранения?

1 Ответ

0 голосов
/ 07 апреля 2020
import requests
import pandas as pd

params = {
    'Service': 'page',
    'DataFilter': 'ElementCode:11;StatisticCode:01',
    'DataMartId': 'CLINO',
    'UserQuery': '',
    'c': '1,2,5,17,18,44'
}


def main(url, params):
    with requests.Session() as req:
        allin = []
        for item in range(1, 23):
            print(f"Extracting Page# {item}")
            params['Page'] = item
            r = req.get(url, params=params)
            df = pd.read_html(r.content)[0]
            allin.append(df)
        new = pd.concat(allin)
        print(new)
        new.to_csv("Data.csv", index=False)


main("http://data.un.org/Handlers/DataHandler.ashx", params)
...