#python #beautifulsoup #python-requests
Вопрос:
Вот что у меня есть до сих пор:
import requests from bs4 import BeautifulSoup def linkScraper(): html = requests.get("https://www.bbc.com/").text soup = BeautifulSoup(html, 'html.parser') for link in soup.find_all('a'): print(link.get('href'))
Но это печатает каждую ссылку на веб-сайте. Как я могу настроить это, чтобы мне давали ссылки на статьи, которые появляются на домашней странице Би-би-си?
Ответ №1:
Вы можете отфильтровать его с помощью понимания списка:
import requests from bs4 import BeautifulSoup def linkScraper(): html = requests.get("https://www.bbc.com/").text soup = BeautifulSoup(html, 'html.parser') links = [link['href'] for link in soup.find_all('a') if link['href'].startswith('https://www.bbc.com/')] for i in links: print(i)
Комментарии:
1. Где бы я вставил эту строку в свой код? Я поставил его перед циклом for, но в нем была ошибка «Ошибка типа: объект ‘NoneType’ не вызывается».