Привет, добрый день ну или же добрый вечер вам
Сегодня мы рассмотрим как написать свой первый парсер для сайта на Python
Всё расскажу простыми словами для начинаюших кодеров
Что такое парсинг?
Парсинг сайта - это процесс извлечения информации с веб-страницы, чтобы получить данные, которые могут быть полезны или интересны для вас.
С чего начнем?
Возьмем за основу наш любимый форум EndWay.Su и напишем на нем парсинг статистики.
Так же не забываем установить все библиотеки
Для начало возьмем импорты наших основных библиотек для нашего файла:
Requests - это библиотека, позволяющая взаимодействовать с веб-серверами и получать данные с веб-страниц. Она делает работу с HTTP-запросами простой и удобной.
Некоторые могут спросить, почему не использовать aiohttp или httpx, но в данном гайде я предпочитаю описать самый простой подход для новичков, чтобы всё было максимально понятно. Обычно для простых парсеров достаточно стандартных библиотек.
BeautifulSoup - также важным инструментом для работы с HTML и XML документами. С её помощью можно легко находить, навигировать и извлекать информацию из структурированных данных HTML.
Для удобства взаимодействия с этими библиотеками, можно создать алиасы, например, "bs" для BeautifulSoup или можно "req" для Requests. Это упростит взаимодействие с кодом.
Далее возьмем код страницы EndWay.Su:
Здесь мы берем страницу. Если вывести сейчас page, то у нас выведится Response.
Чтобы получить код страницы стоит дописать .text, и тогда вы увидим весь код страницы
После чего мы делаем инициализацию BeautifulSoup:
Здесь мы указываем код страницы с помощью .text и так же выбираем функцию парсинга lxml. Есть так же html.parser, но не столько важно это.
Теперь мы ищем наш требуемый элемент парсинга. Нажимает F12 и выбираем в Инспекторе слева сверху стрелочку с окошком и выбираем наш элемент:
После нажатия на элемент текста у нас будет выделен справа в Инспекторе <dd> тег. Он нам и нужен, но пока нам нужно найти сам блок где он хранится.
Как мы видим он хранится в div и так же ниже в dl заголовке:
Теперь идем в код и прописываем поиск.
Указываем нашу переменную с данными bs. И так же в функции .find прописываем наши параметры, в нашем случае это <dl> и так же запятую. После в словаре указываем class и "pairs--flex":
Теперь можем вывести данные и получим:
Но как же вывести число тем? Очень просто на самом деле!
В конце нашего search дописываем еще .find функцию и делаем поиск в этом случае <dd>. Так как у нас там число тем.
В данном случае получим:
А так же уберем наши теги <dd> очень простой дописью .text в конце нашей же строки
Наш результат:
Надеюсь я всё понятно расписал для тех кто только начинает в питоне и пробует на нем кодить.
Весь код нашего парсинга:
Сегодня мы рассмотрим как написать свой первый парсер для сайта на Python
Всё расскажу простыми словами для начинаюших кодеров
Что такое парсинг?
Парсинг сайта - это процесс извлечения информации с веб-страницы, чтобы получить данные, которые могут быть полезны или интересны для вас.
С чего начнем?
Возьмем за основу наш любимый форум EndWay.Su и напишем на нем парсинг статистики.
Так же не забываем установить все библиотеки
Код:
pip install requests bs4 lxml
Для начало возьмем импорты наших основных библиотек для нашего файла:
Python:
import requests
from bs4 import BeautifulSoup as bs
Requests - это библиотека, позволяющая взаимодействовать с веб-серверами и получать данные с веб-страниц. Она делает работу с HTTP-запросами простой и удобной.
Некоторые могут спросить, почему не использовать aiohttp или httpx, но в данном гайде я предпочитаю описать самый простой подход для новичков, чтобы всё было максимально понятно. Обычно для простых парсеров достаточно стандартных библиотек.
BeautifulSoup - также важным инструментом для работы с HTML и XML документами. С её помощью можно легко находить, навигировать и извлекать информацию из структурированных данных HTML.
Для удобства взаимодействия с этими библиотеками, можно создать алиасы, например, "bs" для BeautifulSoup или можно "req" для Requests. Это упростит взаимодействие с кодом.
Далее возьмем код страницы EndWay.Su:
Python:
page = requests.get('https://endway.su/')
Здесь мы берем страницу. Если вывести сейчас page, то у нас выведится Response.
Чтобы получить код страницы стоит дописать .text, и тогда вы увидим весь код страницы
Python:
page = requests.get('https://endway.su/').text
После чего мы делаем инициализацию BeautifulSoup:
Python:
content = bs(page.text, 'lxml')
Теперь мы ищем наш требуемый элемент парсинга. Нажимает F12 и выбираем в Инспекторе слева сверху стрелочку с окошком и выбираем наш элемент:
После нажатия на элемент текста у нас будет выделен справа в Инспекторе <dd> тег. Он нам и нужен, но пока нам нужно найти сам блок где он хранится.
Как мы видим он хранится в div и так же ниже в dl заголовке:
Теперь идем в код и прописываем поиск.
Указываем нашу переменную с данными bs. И так же в функции .find прописываем наши параметры, в нашем случае это <dl> и так же запятую. После в словаре указываем class и "pairs--flex":
Python:
search = content.find('dl', {'class':'pairs--flex'})
Теперь можем вывести данные и получим:
Код:
<dl class="pairs--flex">
<dd>2,186</dd>
<dt>Созданных тем</dt>
</dl>
Но как же вывести число тем? Очень просто на самом деле!
В конце нашего search дописываем еще .find функцию и делаем поиск в этом случае <dd>. Так как у нас там число тем.
Python:
search = content.find('dl', {'class':'pairs--flex'}).find('dd')
В данном случае получим:
Код:
<dd>2,186</dd>
А так же уберем наши теги <dd> очень простой дописью .text в конце нашей же строки
Python:
search = content.find('dl', {'class':'pairs--flex'}).find('dd').text
Код:
2,186
Надеюсь я всё понятно расписал для тех кто только начинает в питоне и пробует на нем кодить.
Весь код нашего парсинга:
Python:
import requests
from bs4 import BeautifulSoup as bs
page = requests.get('https://endway.su/')
content = bs(page.text, 'lxml')
search = content.find('dl', {'class':'pairs--flex'}).find('dd').text
print(search)
Последнее редактирование: