Я пытаюсь очистить файлы Excel из Финского агентства по ценам на лекарства
Я использую html-запросы для поиска ссылок на файлы Excel:
from requests_html import HTMLSession import urllib.request url = 'http://www.hila.fi/fi/hakeminen_ja_ilmoitukset/viitehintajarjestelma/ryhmat_ja_hinnat/viitehintapaatokset2009' session = HTMLSession() r = session.get(url) sel = 'a[href*=".xls"]' reference_datas = r.html.find(sel) for reference_data in reference_datas: url = reference_data.absolute_links.pop() response = urllib.request.urlopen(url) with open('test.xls', 'wb') as f: f.write(response.read())
Это прекрасно работает для содержимого файлов Excel, но выбранные элементы не имеют информации об именах файлов.Имена файлов содержат информацию о периоде, когда цены в файлах применяются.Например, ссылка http://www.hila.fi/c/document_library/get_file?folderId=792534&name=DLFE-4531.xls получает файл Viitehintaluettelo Q4_2009_paivitetty.xls.
http://www.hila.fi/c/document_library/get_file?folderId=792534&name=DLFE-4531.xls
Viitehintaluettelo Q4_2009_paivitetty.xls
Как получить это имя файла в виде строки, чтобы можно было извлечь из него информацию о времени Q4_2009?
Q4_2009
Вы можете получить к нему доступ через заголовки.
from requests_html import HTMLSession session = HTMLSession() r = session.get('http://www.hila.fi/c/document_library/get_file?folderId=792534&name=DLFE-4531.xls') content_disposition = r.headers.get('Content-Disposition') print(content_disposition) # 'attachment; filename="Viitehintaluettelo Q4_2009_paivitetty.xls"'
Просто разберите filename из content_disposition. Вы можете просмотреть Спецификация размещения содержимого здесь .
filename
content_disposition