Всем привет!
Пробую написать парсер для телеграм. На этом этапе я получаю все ссылки, заголовки, описание и дату публикации новости.
Однако почему-то при выводе (print()), в ссылке пишет только главный домен и не подставляет .get(), где по логике должен быть еще id новости.
Вот ссылка на новость на сайте, с которого парсер забирает https://profi.travel/news/51479/details
А вот ссылка, которую получаю (без id) https://profi.travel/None
Подскажите пожалуйста, кто видит ошибку.
Вот код, с которым работаю:
Пробую написать парсер для телеграм. На этом этапе я получаю все ссылки, заголовки, описание и дату публикации новости.
Однако почему-то при выводе (print()), в ссылке пишет только главный домен и не подставляет .get(), где по логике должен быть еще id новости.
Вот ссылка на новость на сайте, с которого парсер забирает https://profi.travel/news/51479/details
А вот ссылка, которую получаю (без id) https://profi.travel/None
Подскажите пожалуйста, кто видит ошибку.
Вот код, с которым работаю:
Python:
import requests
from bs4 import BeautifulSoup
def get_first_news():
headers = {
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"
}
url = "https://profi.travel/news"
r = requests.get(url=url, headers=headers)
soup = BeautifulSoup(r.text, "lxml")
articles_cards = soup.find_all("div", class_="item-list-item") # сначала берем всю карточку новости
for article in articles_cards:
article_title = article.find("h5", class_="item-list-title").text.strip()
article_desc = article.find("div", class_="item-list-description").text.strip()
article_url = f'https://profi.travel/{article.get("href")}'
article_date = article.find("span", class_="item-list-header-date").text.strip()
article_id = article_url.split("news/")[-1]
article_id = article_id[:5]
print(f"{article_title} | {article_desc} | {article_url} | {article_date} | {article_id}")
get_first_news()