Как с помощью Beautiful soup найти все ссылки на файлы xlsx?
Существует сайт из которого нужно скопировать все ссылки на файлы формата .xlsx
import requests
URL = 'https://rosstat.gov.ru/vpn_popul'
resp = requests.get(URL)
html = resp.text
from bs4 import BeautifulSoup
myhtml = BeautifulSoup(resp.content, 'html.parser')
myTags = myhtml.find_all('/.xlsx)
myTags
Питон выдает пустой список, то есть ничего не находит
Ответы (1 шт):
Автор решения: versetty777
→ Ссылка
myTags = myhtml.find_all('a', href=lambda x:
x and x.endswith('.xlsx'))
или регулярка:
import re
myTags = myhtml.find_all('a', href=re.compile('.*\.xlsx$'))
Ещё вариант - библиотека lxml:
from lxml import html
myhtml = html.fromstring(resp.content)
myTags = myhtml.xpath('//a[ends-with(@href,".xlsx")]')
Или примени модуль re или regex:
import re
links = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+\.xlsx', html)