Забыл выпить таблетки и понеслось - это пост о лени и душении питона.
О чем же пост? О том как я выкачал страничку из интернета, нашел в ней необходимые данные и сохранил их.
Чтобы администрации не прилетело - инструкции по обходу блокировок я тут постить не буду, ведь для кого-то сайт вполне себе доступен и без всяких фокусов.
Приступим!
Интернет бывает медленным, страницы тяжелыми, а мне лень ждать, я сразу хочу знать все данные доступные мне и не ждать пока загрузится эта страница, потом перейти на другую.
Мне бы сразу получить список тем форума, без входа на сайт, загрузки страницы поиска. Мне бы узнать - есть ли доступный мне проект?
Надо бы автоматизировать поиск необходимых данных!
Приступаем с поиска "последней" страницы в теме.
Возможно вы случайно тыкали кнопку "исследовать" или открывали инструменты разработчика, где много буков и есть какие-то "Инспектор", "Консоль" и другие пункты.
Вот сейчас нам нужно "исследовать" кнопки страниц.
После чего откроется страшное окно странных букв и цифр. Где мы можем поглядеть внутрь 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 )
- Результат сохраняется в базу данных.
Спасибо за то, что прочитали.
Ох парсинг)) у меня для одного проекта выпаршиваются данные одной сферы но целой страны))
парсить - это весело
Хостерам особенно.
Вот видишь, как полезно знать программирование. А ведь это только начало
Для меня это уже скорее конец, я просто радуюсь мелочам когда меня освобождают от Си и верилогов.
ну хоть 300к в наносекунду получаешь
Пержу за 120тр на новом месте, раньше получал 170, но задолбался с железками работать.
чот мало. надо на заграничные компании работать
Можно сказать на новое место только залетел, так что 120 вполне себе норм с учетом фановости работы и простоты.
Пока с заграничными я на перерыве. Последний раз я пытался перебраться в заграничье в конце 21 года, даже визу получил, но из-за кое каких событий её отменили.
А что там у тебя с Си было?
AVR \ STM32 \ PIC контроллеры, в случае с AVR ещё и ассемблер.
О, что в итоге скажешь?
Avr это тупик, конец судьбы его предрешен?
Stm32 сила, так как он тру арм с кортекс ядрами?
STM32 это топ - модно-быстро-молодежно и дешево. Либ всё больше, гайдов для начинающих уже тонны.
AVR для олдов или кому хочется почитать\пописать на ЧИТАЕМОМ ассемблере.
А так же для ардуинщиков + не забываем, что DIP корпус Atmega8 может даже инвалид припаять к плате сделанной с помощью ЛУТ.
Да, сам проходил этот путь, как мне быстрее и проще (и лучше в итоге) взять Stm32 на модуле, впаять ему ножки которые с ним же продаются и воткнуть всё это в бредборд или как оно там называется. Тут тебе и обвязка по питанию и всё такое
Главное не верить эмуляторам)
Под питон нет чтоль уже готового решения, что-то типо js-кого?
https://github.com/nikityy/rutracker-api
Я пару раз натыкался на либы написанные рандомными людьми, которые валяются в pip`е.
И один раз офигел от захардкожженого адресса(192.160.0.120) в библиотеке - по этому пару строчек написать мне куда проще.
было бы очень полезно иметь расширение. которое бы через гпт прогоняло всю ветку форума и делало выжимку основного (ну типо 4пда, там на форуме может быть много обсуждений и полезного, вот это бы структурировать и выкинуть пользователю)
а по теме, я ничего не понял, какая проблема и зачем ее решали
Так у Яндексов подобное было и иного иногда СИЛЬНО бредит.
Проблема чисто во мне, решил попарсить форум и занести найденное в БД.
Я бывает PS2\PS1\PS3 игру хочу скачать, чтобы по 100 раз не открывать кое-кое-приложение чтоы попасть на кое-какой-сайт - сразу могу в базе посмотреть есть ли нужное. Да и база обновляется за +- 30 секунд.
Тривиально
Так есесно, там кода меньше 100 строк.
Вместе с библиотекой