Happy Python | Парсинг Фриланс Обучение🐍
388 subscribers
35 photos
2 videos
7 files
115 links
Изучаем Python🐍
👉🏼статьи 📝
👉🏼задачи 🧮
👉🏼фриланс 💰
👉🏼парсинг 🔎
👉🏼автоматизация ⚙️
👉🏼боты 🤖
👉🏼и многое другое 💣

Наш сайт: HappyPython.ru
Группа ВК: vk.com/happython
Админ: @object_13
Партнер: @backenddt
Чат: @Python_parsing_chat
Download Telegram
​​Доброго времени суток, выкладываю первую часть урока по парсингу на питоне.
1. Первым делом устанавливаем библиотеку requests, выполнив команду pip install requests и импортируем ее в наш проект

2. Затем берем ссылку интересующего нас сайта (переменная url)

3. Создаем словарь headers, из браузера берем информацию user-agent и accept. Их можно найти открыв консоль разработчика в браузере (клавиша f12) зайти на вкладку networks, далее headers немного пролистав Request headers.

Он нам нужен для того, чтобы сайт не заподозрил подозрительную активность и не заблокировал нам доступ к своему контенту

4. Далее делаем запрос, передав url и headers, сохраняем в переменную response.

5. В переменную html мы передадим html код страницы применив к response свойство text, который нам понадобится в дальнейшем.

#parser #learning #requests
Наш чат: @Python_parsing_chat
​​Доброго времени суток, выкладываю вторую часть урока по парсингу на питоне, код прилагаю

1. Устанавливаем через терминал библиотеку bs4, выполнив команду pip install bs4 и импортируем из нее BeautifulSoup

2. Создаем объект «супа». Передаем нашу ранее полученную переменную html, с кодом страницы и вид парсера «html.parser»

3. Теперь можно приступить к самому интересному, поиску и получению данных с сайта.

Для начала перейдем на нашу страницу, с которой мы хотим извлечь данные, это будет eldorado.ru/c/televizory/b/SONY/

Возьмем для примера телевизоры брэнда SONY

Откроем консоль разработчика, зайдем в раздел «elements» найдем блок товара, он находится в теге <li> с классом «sc-1w9a1pg-0». Создадим переменную blocks со всем блоками найденными при помощи findall, заметьте, что «class» записан с нижним подчеркиванием, т.к. class зарезервирован питоном. Для ‘link’ добавим ‘https://www.eldorado.ru’, что бы наша ссылка была полноценная

4. Создадим список data, в будущем в него будут записана наша собранная информация

5. Проходимся по всем блокам и собираем с них нужную нам информацию

Я для примера взял название позиции, артикул, цену и ссылку на сам товар, добавляя все полученное в список data

6. Выведем на печать все что у нас получилось, плюс выведем количество полученных позиций

Мы получили только 36 товаров из 49, т.к. мы прошлись только по одной странице, в следующий раз разберем пагинацию
#parser #learning #requests
Наш чат: @Python_parsing_chat
​​В предыдущем мини курсе мы получили 36 записей, или же 1 страницу из 2х. Сейчас же пройдем по всем страницам, будь то 2 или овер999
1. Для начала нам нужно найти количество страниц, для этого воспользуемся консолью разработчика, пролистнем страницу донизу, найдем блок где указаны номера страниц, на данной сайте (https://www.eldorado.ru/c/televizory/b/SONY/) это тэг «div» с классом «onorfo-0 sc-1y0nltl-0 bblmYF» внутри этого блока находятся теги «li» в них и находятся номера страниц, нам нужен предпоследний, так как в нем содержится номер последней страницы, воспользуемся срезом -2 , если нет пагинации, получим только 1 страницу.
На данном примере мы получим 2 страницы
2. Теперь переработаем наш блок кода, где мы извлекали данные (#5 в предыдущем мини курсе ).
Используем цикл for чтобы пройтись по всем страницам, так же в наш запрос мы добавим параметр params где передадим словарь из {“ключ”: значение} он берется с основной ссылки, например зайдём на страницу 2 и увидим «https://www.eldorado.ru/c/televizory/b/SONY/?page=2» что у нас к ссылке добавилось «?page=2» вот это мы и добавляем params={‘page’: page} где значение это наш номер страницы.
Остальное остается как и было, добавим пару принтов, чтобы видеть как у нас продвигается процесс.
На выходе теперь мы получили 50 позиций, что соответствует общему количеству.
Кстати, Вы можете сменить url на любой другой раздел с сайта Eldorado.ru и код все равно будет работать.
В следующий раз мы разберем как можно сохранять в файлы, наши полученные данные.
#parser #learning #requests #beautifulsoup
Наш чат: @Python_parsing_chat
​​В прошлом уроке мы извлекли данные с сайта и передали их в переменную, теперь рассмотрим как ее сохранить в файл (csv и excel)
Этот мини урок и 3 предыдущих переработал, сделал более информативными и приятными. Переходим по ссылке в ВК и читаем, изучаем.
Не забываем подписаться
#parser #learning #csv #excel #pandas
Наш чат: @Python_parsing_chat
​​Выкладываю обучающую статью по парсингу
🔎В данной теме:
- разберемся в скрытой пагинации 🙈
- используем фейковые юзер агенты при каждом запросе 👮‍♂️
- выставляем задержку после прохода каждой страницы ⌚️
- запускаем бесконечный цикл🔁
- полученные данные сохраняем в json файл💾

#parser #learning #pagination #json #практика
Наш чат: @Python_parsing_chat