scrapy_python | Unsorted

Telegram-канал scrapy_python - Scrapy

1045

Чат создан чтобы делиться опытом о Scrapy/Python и другими парсинг технологиями. Вежливость и уважение к другим участникам группы. Троллинг не приветствуется. FAQ: https://github.com/bulatbulat48/ru-scrapy-python Работа: t.me/scrapy_jobs

Subscribe to a channel

Scrapy

а стопе, а ты еще весь такой асинхронный код в стейт записываешь который на json'е?

                progress['category'] = batch[-1]
state['last_processed_category'] = batch[-1]
state['last_processed_page'] = 1
progress['page'] = 1
progress['product_index'] = 0
save_progress(progress['category'], progress['page'], progress['product_index'])
save_current_state(state)

Читать полностью…

Scrapy

https://pastebin.com/XDbjuhhd

Читать полностью…

Scrapy

потому-что щас получается какой-то разговор слепого с глухим

Читать полностью…

Scrapy

У меня такоее было, когда в html страницы наспамили до миллиона ссылок (это не шутка). На заброшенных форумах без регистрации это норма.

Читать полностью…

Scrapy

скачивание как правило дольше обработки

Читать полностью…

Scrapy

У меня есть функция основная scrape_products:
- Инициализирует основные параметры (URL, счетчики, ограничитель запросов).
- Загружает предыдущее состояние и прогресс.
- Обрабатывает категории пакетами (по 20 штук).
- Для каждой категории в пакете создает асинхронную задачу scrape_category.
- Ожидает завершения всех задач в пакете.
- Обновляет общий счетчик товаров и сохраняет прогресс.

Функция scrape_category:

- Получает HTML-контент страницы категории.
- Извлекает иерархию категории.
- Вызывает parse_category_page для обработки товаров на странице.
- Сохраняет полученные продукты в JSON-файл.
- Обновляет прогресс и состояние после обработки категории.

Функция parse_category_page:
- Находит все блоки товаров на странице.
- Создает асинхронные задачи parse_product для каждого товара.
- Возвращает список успешно обработанных товаров.


Функция parse_product:
- Извлекает основную информацию о товаре (имя, изображение).
- Парсит характеристики товара.
- Обрабатывает информацию о ценах, если она доступна.
- При наличии цен вызывает parse_seller_page для получения дополнительной информации.

Читать полностью…

Scrapy

Да, я уже понял, что настроил велосипедов, еще и медленных

Читать полностью…

Scrapy

Задачу на обработку ( то есть парсинг товаров в категории)

Читать полностью…

Scrapy

задачу на что? на скачивание?

Читать полностью…

Scrapy

Берем пакет категорий 20 штук и для каждой создаем отдельную асинхронную задачу

Читать полностью…

Scrapy

вернее той области, куда артикул лепилсо

Читать полностью…

Scrapy

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

Читать полностью…

Scrapy

там просто начиналось все как всегда с одной картинки...

Читать полностью…

Scrapy

скрапи тянул последовательно? выглядит как косяк логики

Читать полностью…

Scrapy

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

Читать полностью…

Scrapy

да я читаю там еще до четверти кода не дошел)) ага - limiter там аля лимитер, при этом стейт походу загружается 1 раз на старте, при условии что ретраев немного на запрос (немного же, да?). читаю дальше

Читать полностью…

Scrapy

вдруг у тебя там async def, а внутри все await await await на каждой строчке, эт тогда не факт что будет асинхронный код)))

Читать полностью…

Scrapy

ну или как-минимум, что ты подразумеваешь под асинхронной задачей? скачивание в асинхронном пуле html-страничек (что обычно самое долгое в коде) или что?

Читать полностью…

Scrapy

короче, чем долго играть в испорченный телефон, просто покажи код, на pastebin закинь, можешь "сикретные куски" поудалять, да и вообще оставить тока остовы функций

Читать полностью…

Scrapy

вопрос по-прежнему тот же

Читать полностью…

Scrapy

а почему это важно? у вас парсинг дольше чем собственно скачивание?

Читать полностью…

Scrapy

парсинг уже скачанного то есть?

Читать полностью…

Scrapy

это максимально неэффективно, а сколько раз ты к нему обращался примерно за парсинг? и что ты там хранил? вообще, что ты имеешь в виду под состоянием?

Читать полностью…

Scrapy

а можешь в виде кода это показать? интересу ради

Читать полностью…

Scrapy

Сохранение состояние в файле json было...

Читать полностью…

Scrapy

а так поначалу надо было выкачать картинку, и впендюрить на нее артикул, с цветом надписи противоположной картинке)

Читать полностью…

Scrapy

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

Читать полностью…

Scrapy

нене, моя функция по сохранению картинок)

Читать полностью…

Scrapy

поэтому я вот уже набив шишек вижу где у тебя уже возникают приколы при текущем парсере или могут возникнуть, вида "сохранение состояния" (в чем, в базе, clickhouse, pickle?), эта вот "обработка категорий пакетами" - как оно реализовано? foreach по листу или пул какой. И т.д. и т.п.

Читать полностью…

Scrapy

немного перепутал
у jmespath есть кеш нод
у parsel кеш только на трансляцию css

Читать полностью…
Subscribe to a channel