Некоторые советы по Scrapy, которые должен знать каждый эксперт по парсингу и программист!
Table Of Content
В этой статье рассказывается о некоторых советах по Scrapy, которые должен знать эксперт по парсингу или программист, и которые будут очень полезны для них.
Несколько полезных советов для мастеров Scrapy
Ваш паук готов и собирает данные, но вы хотите сохранить свои данные в форматированный файл. Как CSV, JSON или XML, вы можете сделать это с помощью простой и волшебной команды.
Вам нужно использовать -o filename.csv с командой сканирования Scrapy, и ваши все собранные данные будут в этом файле.
Используйте:
scrapy crawl somespider -o filename.csv
scrapy crawl somespider -o filename.json
scrapy crawl somespider -o filename.xml
Вот и все.
- Изменение User-Agent
Изменение User-Agent - это хорошая практика при парсинге веб-сайтов. Иногда веб-сайты обнаруживают ботов посредством User-Agent. И вы знаете, что по умолчанию User-Agent Scrapy - "Scrapy/VERSION (+https://scrapy.org)"
Таким образом, веб-сайт может легко обнаружить вашего бота.
Вы должны изменить USER_AGENT на странице настроек:
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36"
Или вы можете использовать модуль Python для генерации поддельного User-Agent, и каждый раз он будет отличаться.
pip install fake-useragent
Setting.py
from fake_useragent import UserAgent
USER_AGENT = UserAgent().random
Всего две строки кода могут спасти вашего бота от обнаружения и блокировки!
- Отключение правила
Файл robots.txt сообщает поисковым роботам, какие URL-адреса робот может получить доступ на вашем сайте. Он используется в основном для избегания перегрузки вашего сайта запросами; это не механизм для исключения веб-страницы из Google.
Поэтому вы должны отключить функцию ROBOTSTXT_OBEY в настройках Scrapy.
ROBOTSTXT_OBEY = False
И это поможет вам собрать все URL-адреса веб-сайта.
- Приостановка и возобновление сканирования
Иногда для больших сайтов желательно приостановить сканирование и иметь возможность возобновить его позже. Scrapy поддерживает эту функциональность из коробки, предоставляя такую возможность.
Вы можете начать сканирование пауков там, где вы закончили в последний раз.
Чтобы завершить паука, используйте: CTRL + C
Таким образом, вы можете сообщить своему проекту Scrapy, что вы должны приостановить и возобновить паука с помощью командной строки:
scrapy crawl somespider -s JOBDIR=crawls/somespider-1
Запустите паука, используя указанную выше команду, и когда вам нужно остановить сканирование, просто нажмите: CTRL + C
Позже вы можете возобновить сканирование с помощью той же команды:
scrapy crawl somespider -s JOBDIR=crawls/somespider-1
Если вы хотите узнать подробнее о заданиях Scrapy, вы можете посетить официальную документацию здесь.
Вот и все. Надеюсь, эти советы будут полезны для вас и помогут вам сделать лучший парсинг. Дайте мне знать в комментариях.