Как получить список статей с Python и bs4
В сегодняшней статье мы рассмотрим способ получения списка статей, из определенной категории нашего сайта. Вот что нас интересует:
Данный список хранится в html теге ul. Мы будем посылать запрос на страницу с помощью Python библиотеки requests. Далее мы получим ответ, который и будет обработан библиотекой bs4.
Для начала установим все необходимое.
pip install bs4
Также в зависимости от версии Python, может понадобиться установка модуля requests. В поздних версиях данный пакет встроен в компилятор.
# импортируем модули
import sys
from bs4 import BeautifulSoup
# встроенный модуль
import requests
# код для пользовательского ввода с консоли
# вводимая страница https://myrusakov.ru/python-tutorial.html
url = input("Введите адрес страницу")
# отправка запроса на сайт и получение ответа
page = requests.get(url)
# вывод статуса ответа
print(page)
# <Response[200]>
# статус 200 говорит об успешном ответе
# вывод на экран кода страницы в символьном виде
print(page.content)
# далее используем модуль BeautifulSoup, который является удобным инструментом для обработки web страниц,
# в который мы передаем содержимое страницы в символьном виде, а также параметр html.parser отвечающий # за парсинг
soup = BeautifulSoup(page.content, "html.parser")
# далее выводим сам код страницы в формате html
print(soup.prettify())
# С помощью метода find_all находим названия всех статей внутри тега ul
title = soup.find_all("ul")
# в цикле методом get_text получаем текст без html кода и выводим его в консоль
for text in title:
print(text.get_text())
# далее записываем результат в файл
with open("tt.txt", 'w') as f:
for text in title:
print(text.get_text(), file = f)
Запуск скрипта
>>>python get_article.py
# наш список будет выведен в консоль и записан в соответствующий файл
Таким образом, мы получили список размещенных статей по темам языка c помощью Python и bs4 .
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.