@Bjornie
Изучаю Python

Меры предосторожности при парсинге на Python?

С недавнего времени изучаю Python и хочу выполнить первый проект для парсинга данных из закрытой области (по авторизации).

Посмотрел один урок (гист, но там же есть ссылка на видео на ютубе), по которому все достаточно понятно. Но автор не использует никаких модулей для авторизации, не отправляет заголовки, не использует прокси и т.д., поэтому возникают следующие вопросы:
- Если предстоит спарсить несколько тысяч страниц, какие меры безопасности нужно предпринимать, чтобы не быть забаненым?
- Вероятно. если поставить паузы между запросами можно не попасть в бан? (и как вообще "разведывается" обстановка, чтобы понять: здесь можно спокойно парсить, а здесь тебе покажут сложную каптчу после первых 3 запросов).
- Стоит ли парсить с десктопа (как делал автор)?
- Какой несложный http-клиент можете порекомендовать?
- Достаточно ли отправить заголовки похожие на те, что отправляет мой же браузер?

Данные для парсинга в целом несложные, названия, города да контакты, никакого JS, пагинация.
  • Вопрос задан
  • 4703 просмотра
Решения вопроса 1
el777
@el777
Если парсить всерьез, то я рекомендую обратить внимание на scrapy - шикарный фреймворк на питоне для парсинга сайтов.
Задачу в заголовке можно будет решить без говнокода.
Итого: 1 страница красивого кода, за 57 секунд в 16 потоков загружает 345 страниц с веблансера и выдает 3420 проектов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Иногда проще наоборот настроить парсер в 10 потоков и спарсить всё за 30 минут пока админы не опомнились чем растягивать это хз на сколько ))
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
хороший способ - запустить wget, если он выкачает весь сайт - он однопоточный, то защита там неособо
еще фишка - прикинуться Гуглботом, поверьте на слово - оочень немногие проверяют бота, особенно если с ВПС в США парсить
для ВК и прочих, где царствую спамеры - защита будет всегда, границы - ищите
заголовки - см https://pypi.python.org/pypi/fake-useragent/0.1.2
Ответ написан
@iSergios
Python-разработчик
1) Бдить временные интервалы, использовать разные IP и учетные записи (если возможно).
2) Вероятно да. Однако никто Вам тут не ответит, все очень индивидуально. Разведка всегда проводится методом проб и ошибок.
3) Да пожалуйста. За парсинг у нас не сажают. В худшем случае забанят. Решать Вам.
4) В смысле?
5) Откуда ж нам знать-то?
Ответ написан
Комментировать
@lcd1232
Для теста данные библиотеки подходят, но если действительно хотите парсить большие сайты, то надо использовать scrapy.
- Если предстоит спарсить несколько тысяч страниц, какие меры безопасности нужно предпринимать, чтобы не быть забаненым?
Если нет авторизации, то можно использовать: user-agent rotation, proxy rotation, random delay.
- Вероятно. если поставить паузы между запросами можно не попасть в бан? (и как вообще "разведывается" обстановка, чтобы понять: здесь можно спокойно парсить, а здесь тебе покажут сложную каптчу после первых 3 запросов).
Просто пишешь парсер без пауз, если все парсится, то защиты нет. По моему опыту могу сказать, что очень мало сайтов имеют защиту от множества запросов, в основном крупные проекты.
- Стоит ли парсить с десктопа (как делал автор)?
Конечно.
- Достаточно ли отправить заголовки похожие на те, что отправляет мой же браузер?
Тут надо смотреть на защиту, в основном хватает user-agent'а.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы