Я пытаюсь получить список загружаемых xls
файлов на веб-сайте.Я неохотно предоставляю полные ссылки на данный веб-сайт.Надеюсь, я смогу предоставить все необходимые детали.Если это бесполезно, пожалуйста, дайте мне знать.
Загрузите файлы .xls с веб-страницы, используя Python, и BeautifulSoup - это очень подобный вопрос, но детали ниже приведутпокажите, что решение, скорее всего, должно быть другим, поскольку ссылки на этом конкретном сайте помечены href
якорем:
Ите, которые я пытаюсь получить, не помечены одинаково.
На веб-странице файлы, доступные для скачивания, перечислены следующим образом:
Простой указатель мыши дает следующие подробности:
Я следую настройке здесь с некоторыми изменениями для получения приведенного ниже фрагмента, который содержит список некоторых ссылок, но не на любой из файлов xls
:
from bs4 import BeautifulSoup
import urllib
import re
def getLinks(url):
with urllib.request.urlopen(url) as response:
html = response.read()
soup = BeautifulSoup(html, "lxml")
links = []
for link in soup.findAll('a', attrs={'href': re.compile("^http://")}):
links.append(link.get('href'))
return links
links1 = getLinks("https://SOMEWEBSITE")
Дальнейшая проверка с использованием ctrl+shift+I
в Google Chrome показывает, что эти конкретные ссылки не имеют тега привязки href
, а ng-href
тег привязки:
Поэтому я попытался изменить это в приведенном выше фрагменте, но безуспешно.
И я 'мы пробовали разные комбинации с e.compile("^https://")
, attrs={'ng-href'
и links.append(link.get('ng-href'))
, но все еще безуспешно.
Так что я надеюсь, что у кого-то есть лучшее предложение!
РЕДАКТИРОВАТЬ- Дальнейшие подробности
Кажется немного проблематичным читать эти ссылки напрямую.Когда я использую ctrl+shift+I
и Select an element in the page to inspect it Ctrl+Shift+C
, это то, что я вижу при наведении курсора на одну из ссылок, перечисленных выше:
И вот что я хочу извлечь - это информация, связанная с тегом ng-href
.Но если я щелкну правой кнопкой мыши на странице и выберу «Показать источник», один и тот же тег появится только один раз вместе с метаданными сома (?):
И ядумаю, именно поэтому мой довольно простой подход потерпел неудачу.
Я надеюсь, что это имеет смысл для некоторых из вас.