Size: a a a

2020 August 27

К

Кирилл in Scrapy
Spirit💎
господа, добый день! хочу понять, правильно ли я действую.

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

задача №2. заходить на внешние ссылки и парсить определенные данные.

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

я застопорился на первой задаче. поскольку скрапи я буду запускать по требованию сервера, то запускаю паука через CrawlerProcess, а не через CLI. краулер ходит по всем внутренним ссылкам и в коллбэке правила метод parse выдергивает все внешние ссылки. вроде все ок, но я не знаю как быть дальше))

в моем представлении, окончание работы краулера должно сопровождаться итоговым объектом, с которым я могу продолжить работать в скрипте. но, как я понял, дефолтная логика скрапи другая, то есть он делает экспорт файл с объектами, верно?

в общем, как я понял, для первой задачи мне надо сделать следующее:
1. создавать item каждой страницы в методе parse
2. в pipeline вызывать process_item под каждый item, и в этом process_item делать запись в бд

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

логично или не совсем?) что бы вы поменяли, обладая опытом работы со скрапи
Вроде более менее норм, только лучше не удалять дубликаты, а не делать их. Ну и похоже тебе нужен scrapyd с его API для удобного запуска парсинга
источник

S

Spirit💎 in Scrapy
Кирилл
Вроде более менее норм, только лучше не удалять дубликаты, а не делать их. Ну и похоже тебе нужен scrapyd с его API для удобного запуска парсинга
спасибо! но с дубликатами там выходит обязательное условие, например:
страница 1 ссылается на A, B, C
страница 2 ссылается на B, X, Y
их придется хранить, но в целях экономии ресурсов при задаче 2 чистить дубликаты, чтоб на вход приходили A, B, C, X, Y

и по scrapyd, его же возможно с джанговской ORM подружить?
источник

SS

Stepan Smirnov in Scrapy
Spirit💎
спасибо! но с дубликатами там выходит обязательное условие, например:
страница 1 ссылается на A, B, C
страница 2 ссылается на B, X, Y
их придется хранить, но в целях экономии ресурсов при задаче 2 чистить дубликаты, чтоб на вход приходили A, B, C, X, Y

и по scrapyd, его же возможно с джанговской ORM подружить?
у скрапи есть duplicate_filter
источник

К

Кирилл in Scrapy
Spirit💎
спасибо! но с дубликатами там выходит обязательное условие, например:
страница 1 ссылается на A, B, C
страница 2 ссылается на B, X, Y
их придется хранить, но в целях экономии ресурсов при задаче 2 чистить дубликаты, чтоб на вход приходили A, B, C, X, Y

и по scrapyd, его же возможно с джанговской ORM подружить?
Тебе нужно получить все ссылки, или сохранить что на что ссылается?
источник

S

Spirit💎 in Scrapy
Кирилл
Тебе нужно получить все ссылки, или сохранить что на что ссылается?
второе важно, да. там в конечном итоге сервис отчеты будет делать по ним)
источник

К

Кирилл in Scrapy
Spirit💎
спасибо! но с дубликатами там выходит обязательное условие, например:
страница 1 ссылается на A, B, C
страница 2 ссылается на B, X, Y
их придется хранить, но в целях экономии ресурсов при задаче 2 чистить дубликаты, чтоб на вход приходили A, B, C, X, Y

и по scrapyd, его же возможно с джанговской ORM подружить?
scrapyd это демон с http API которые запускает у себя пауков, его не нужно дружить с ORM, только с какими-то реквестами, чтоб отправлять ему задачи
источник

К

Кирилл in Scrapy
а ORM можешь как обычно в экспортерах делать или в пайплайне
источник

S

Spirit💎 in Scrapy
Кирилл
а ORM можешь как обычно в экспортерах делать или в пайплайне
ну я пайплайн имел в виду, да
источник

К

Кирилл in Scrapy
Ну, как-то можно)
источник

К

Кирилл in Scrapy
Поищи, я видел где-то статьи на медиуме, там скрещивали джанго с скрапи
источник

AR

Andrey Rahmatullin in Scrapy
есть scrapy-djangoitem официальный
источник

AR

Andrey Rahmatullin in Scrapy
старый правда
источник

A

Andrii in Scrapy
с чем может быть связано: с виндовс запускаю реквест с ротацией прокси - пробивается с 1-5 раза.  Запускаю то самое на авс - со 100 раза пробивается (сайт защищен от ботов)
источник

МС

Михаил Синегубов... in Scrapy
прокси точно аноним?
источник

A

Andrii in Scrapy
Михаил Синегубов
прокси точно аноним?
300шт, те же прокси на виндовс ок работает, на авс нет
источник

A

Andrii in Scrapy
Думаю он в хедере еще что-то передает
источник

A

Andrii in Scrapy
Про ос
источник

МС

Михаил Синегубов... in Scrapy
это не ответ на мой вопрос :).
сайт может палить что ты с АВС работаешь, если прокся кривая. Ну и не забывай о TTL, по нему могут систему палить, если параноики
источник

A

Andrii in Scrapy
источник

A

Andrii in Scrapy
Михаил Синегубов
это не ответ на мой вопрос :).
сайт может палить что ты с АВС работаешь, если прокся кривая. Ну и не забывай о TTL, по нему могут систему палить, если параноики
Anonymous Proxy

Unlike legacy proxy providers, Webshare proxy servers are optimized to prevent detection techniques like DNS leak, header leak and open port scans.

Маркетинг он такой 😂
источник