avatar
32 секунд читать

Краткопост: как дед интернеты качал

Забыл выпить таблетки и понеслось - это пост о лени и душении питона.

***

О чем же пост? О том как я выкачал страничку из интернета, нашел в ней необходимые данные и сохранил их.

Чтобы администрации не прилетело - инструкции по обходу блокировок я тут постить не буду, ведь для кого-то сайт вполне себе доступен и без всяких фокусов.

***

Приступим!

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

Мне бы сразу получить список тем форума, без входа на сайт, загрузки страницы поиска. Мне бы узнать - есть ли доступный мне проект?

***

Надо бы автоматизировать поиск необходимых данных!

Приступаем с поиска "последней" страницы в теме.

Возможно вы случайно тыкали кнопку "исследовать" или открывали инструменты разработчика, где много буков и есть какие-то "Инспектор", "Консоль" и другие пункты.

Вот сейчас нам нужно "исследовать" кнопки страниц.

После чего откроется страшное окно странных букв и цифр. Где мы можем поглядеть внутрь HMTL странички.

Что же мы видим? Все эти "кнопки" класса pg, и последняя страница заканчивается на start=5350. 

А теперь к раздумью, по моей логике:

  • Можно из параметра href откусить весь текст до последнего знака "=". (Оставляя только цифры)
  • Попытаться преобразовать str -> int.
  • Сравнить max_number и текущую цифру.
  • Если max_number меньше чем текущая цифра, то запишем текущую цифру как max_number.
  • Ну конечно, теперь можно открывать python и попробовать взять данные!

Ну с цифрами разобрались и получили, теперь осталось подготовить данные.

Как же сие чудо работает? Есть такая волшебная штука lxml  которая умеет работать с html и позволит нам брать данные по XPATH или CSSSELECT. Мы просто говорим скрипту что нам нужно собрать.

Половина дела сделано, имеем список страниц и "категорию" (Это разделы)

***

Так а что дальше делать? Нам же нужен список "Тем" на странице.

А всё идентично, только теперь мы будем искать кнопку класса с другим именем.

Собираем все данные и сохраняем куда хотим. Текстовый файл, json файл база данных sqlite.

Это действительно всё, что мне нужно было, теперь у меня есть список всех интересующих меня тем из определенных категорий на форуме.

Разница в описанном варианте и тем который я использую:

  • Добавил async - чтобы быстренько открыть странички взять данные. (Aophttp - чтобы получать страницы через session.get \ Aiosocksy - ProxyClientRequest и ProxyConnector )
  • Результат сохраняется в базу данных.
***

Спасибо за то, что прочитали.

Нормально?
Нормально 77.78%
Деда прекрати 22.22%
Всего голосов 18
Опрос завершен - апрель 23-го 2024

22 Комментарии

avatar
Драко🐼
2 месяца назад

Ох парсинг)) у меня для одного проекта выпаршиваются данные одной сферы но целой страны))

avatar
Viktor Автор
2 месяца назад

парсить - это весело

avatar
Cornelius
2 месяца назад

Хостерам особенно.

avatar
Вискас🍺
2 месяца назад

Вот видишь, как полезно знать программирование. А ведь это только начало

avatar
Viktor Автор
2 месяца назад

Для меня это уже скорее конец, я просто радуюсь мелочам когда меня освобождают от Си и верилогов.

avatar
Вискас🍺
2 месяца назад

ну хоть 300к в наносекунду получаешь

avatar
Viktor Автор
2 месяца назад

Пержу за 120тр на новом месте, раньше получал 170, но задолбался с железками работать.

avatar
Вискас🍺
2 месяца назад

чот мало. надо на заграничные компании работать

avatar
Viktor Автор
2 месяца назад

Можно сказать на новое место только залетел, так что 120 вполне себе норм с учетом фановости работы и простоты.
Пока с заграничными я на перерыве. Последний раз я пытался перебраться в заграничье в конце 21 года, даже визу получил, но из-за кое каких событий её отменили.

avatar
Чёртик
2 месяца назад

А что там у тебя с Си было?

avatar
Viktor Автор
2 месяца назад

AVR \ STM32 \ PIC контроллеры, в случае с AVR ещё и ассемблер.

avatar
Светлослав
2 месяца назад

О, что в итоге скажешь?
Avr это тупик, конец судьбы его предрешен?
Stm32 сила, так как он тру арм с кортекс ядрами?

avatar
Viktor Автор
2 месяца назад

STM32 это топ - модно-быстро-молодежно и дешево. Либ всё больше, гайдов для начинающих уже тонны.
AVR для олдов или кому хочется почитать\пописать на ЧИТАЕМОМ ассемблере.
А так же для ардуинщиков + не забываем, что DIP корпус Atmega8 может даже инвалид припаять к плате сделанной с помощью ЛУТ.

avatar
Светлослав
2 месяца назад

Да, сам проходил этот путь, как мне быстрее и проще (и лучше в итоге) взять Stm32 на модуле, впаять ему ножки которые с ним же продаются и воткнуть всё это в бредборд или как оно там называется. Тут тебе и обвязка по питанию и всё такое

avatar
Viktor Автор
2 месяца назад

Главное не верить эмуляторам)

avatar
Delta
2 месяца назад

Под питон нет чтоль уже готового решения, что-то типо js-кого?
https://github.com/nikityy/rutracker-api

avatar
Viktor Автор
2 месяца назад

Я пару раз натыкался на либы написанные рандомными людьми, которые валяются в pip`е.
И один раз офигел от захардкожженого адресса(192.160.0.120) в библиотеке - по этому пару строчек написать мне куда проще.

avatar
скUFOлог
2 месяца назад

было бы очень полезно иметь расширение. которое бы через гпт прогоняло всю ветку форума и делало выжимку основного (ну типо 4пда, там на форуме может быть много обсуждений и полезного, вот это бы структурировать и выкинуть пользователю)
а по теме, я ничего не понял, какая проблема и зачем ее решали

avatar
Viktor Автор
2 месяца назад

Так у Яндексов подобное было и иного иногда СИЛЬНО бредит.
Проблема чисто во мне, решил попарсить форум и занести найденное в БД.
Я бывает PS2\PS1\PS3 игру хочу скачать, чтобы по 100 раз не открывать кое-кое-приложение чтоы попасть на кое-какой-сайт - сразу могу в базе посмотреть есть ли нужное. Да и база обновляется за +- 30 секунд.

avatar
Über Menschen
2 месяца назад

Тривиально

avatar
Viktor Автор
2 месяца назад

Так есесно, там кода меньше 100 строк.

avatar
Über Menschen
2 месяца назад

Вместе с библиотекой