Я пытаюсь получить URL-адрес со страницы, на которой есть список URL-адресов. Я не хочу получать все URL-адреса, только те, чей текст соответствует тексту строк в списке. Список строк - это подмножество текста ссылок на веб-странице, которое я извлек, удалив страницу и удалив ненужный мне текст. У меня есть список строк, хранящихся в filenames
.
Я пытаюсь извлечь ссылки, содержащие строки в списке. Ниже возвращается пустой список
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html5lib')
links = soup.findAll('a', string = filenames[0])
file_links = [link['href'] for link in links if "export" in link['href']]
Тег выглядит примерно так:
<p><a href="https://drive.google.com/uc?export=download&id=1wVjbdN9fztrjxhONGRX5U6N1OJDAChOi">
ECZ Mathematics Paper 2 2019.</a></p>
<p><a href="https://drive.google.com/uc?export=download&id=1x_9E3PaviCuSsqfJqOsQKOwVlCWZ1jqf">
ECZ Mathematics Paper 1 2019.</a></p>
<p><a href="https://drive.google.com/uc?export=download&id=1QFOzpPLuQPup8FtKgOoIcvzTnzCaRzUp">
ECZ Science Paper 3 2009.</a></p>
<p><a href="https://drive.google.com/uc?export=download&id=0B0lFc6TrfIg7aENYc1V6akRVVnc">
ECZ Civic Education Paper 2 2009.</a></p>
Я хочу получить ссылки на href первых трех, но не последних, поскольку строка 'ECZ Civic Education Paper 2 2009.'
не является частью моего списка строк. Ссылка на сайт здесь
Мой список строк выглядит следующим образом:
filenames = ['ECZ Mathematics Paper 2 2019.', 'ECZ Mathematics Paper 2 2019.',
'ECZ Science Paper 3 2009.']
Я хочу только первые три ссылки, потому что текст ссылок находится в мой список (имена файлов). Я не хочу четвертую ссылку, потому что текст рядом со ссылкой href (ECZ Civi c Education Paper 2 2009.) отсутствует в моем списке, потому что я не хочу загружать этот файл.