как во время парсинга сайта с новостями перейти по самой статье и прочитать ее(python)
есть код парсера по сайту с новостями, он собирает и выводит заголовки статей, а как пропарсить сами эти статьи, чтобы прочитать полностю?
import requests
from bs4 import BeautifulSoup as bs
spis = []
spis2 = []
sesssion = requests.Session()
new = requests.get('https://www.vesti.ru/news')
html = bs(new.content, 'html.parser')
count = 0
for i in html.select('.b-item__info'):
title2 = i.select('.b-item__title > a')
spis.append(str(title2))
for j in spis:
string = list(j)
d = string[32:-5]
spis2.append(''.join(d))
for i in spis2:
print(i)```
Ответы (1 шт):
Автор решения: BlueScreen
→ Ссылка
Рассмотрим сайт вестей.
Список всех новостей это div с классом news-wrapper_. Каждая новость имеет класс b-item__inner а информация о ссылке на статью и ее названии хранится в теге а. Соответсвенно такой код:
import requests
from bs4 import BeautifulSoup as bs
from urllib.parse import urljoin
domain = 'https://www.vesti.ru/news'
r = requests.get(domain)
soup = bs(r.content, 'html.parser')
news_area = soup.find("div", {"class":"news-wrapper_"})
news = news_area.find_all("div", {"class":"b-item__inne"})
for new news:
heading = new.find("h3", {"class":"b-item__title"})
name = heading.find("a").get_text()
#link = domain + heading.find("a").get("href") #Т к ссылка указана без домена
link = urljoin(domain, heading.find("a").get("href"))
#Второй способ генерации ссылок предпочтительнее.
news_text = requests.get(link).content
print(name, link, news_text)
И еще скажу вам на будущее что в соответствии со стандартом PEP - 8 вы должна давать названия переменным которые отражают содержание, spis j итп - далеко не лучший выбор.