Фреймворк Scrapy реализует общий функциональный интерфейс для сбора данных посредством модульной конструкции и предоставляет настраиваемые расширения. Он освобождает программистов от утомительной повторяющейся работы, основанной на процессах, и предоставляет программистам гибкую и простую базовую конструкцию. Для обычных людей программисты могут собирать данные с веб-страниц. нужно только посвятить свою основную энергию анализу данных веб-сайта и анализу стратегии защиты от сканирования веб-сайта. В сочетании с использованием прокси-IP проект можно запустить эффективно и быстро. Ключевые особенности включают в себя: 1) Параметризованная настройка количества одновременных запросов и автоматическое асинхронное выполнение 2) Поддержка xpath, простая и эффективная 3) Поддержка специального промежуточного программного обеспечения 4) Список источников сбора поддержки 5) Поддержка независимой отладки, удобно. shell Способ 6) Поддерживает определение интерфейса конвейера данных, пользователи могут выбирать текст, базу данных и т. д. существоватьScrapyрамкаиспользуется вактерское Способности мастерства бывают следующих типов: 1. Scraping промежуточное ПО Создайте в проекте новый файл middlewares.py (./project name/middlewares.py) со следующим содержимым: #! -- encoding:utf-8 -- import base64 import sys import random PY3 = sys.version_info[0] >= 3 def base64ify(bytes_or_str): if PY3 and isinstance(bytes_or_str, str): input_bytes = bytes_or_str.encode(‘utf8’) else: input_bytes = bytes_or_str output_bytes = base64.urlsafe_b64encode(input_bytes) if PY3: return output_bytes.decode(‘ascii’) else: return output_bytes class ProxyMiddleware(object): def process_request(self, request, spider): # Прокси-сервер (официальный сайт продукта) www.16yun.cn) proxyHost = “t.16yun.cn” proxyPort = “31111” # Информация о проверке агента proxyUser = “username” proxyPass = “password” request.meta[‘proxy’] = “http://{0}:{1}”.format(proxyHost,proxyPort) # Добавить проверочный заголовок encoded_user_pass = base64ify(proxyUser + “:” + proxyPass) request.headers[‘Proxy-Authorization’] = 'Basic ’ + encoded_user_pass # Установите коммутационную головку IP (при необходимости) tunnel = random.randint(1,10000) request.headers[‘Proxy-Tunnel’] = str(tunnel) Изменить файл конфигурации проекта (./имя_проекта/settings.py) DOWNLOADER_MIDDLEWARES = { «Имя проекта.middlewares.ProxyMiddleware»: 100, } 2. Scrapy переменные среды Используйте агент-сканер (Windows), задав переменные среды. C:>set http_proxy=http://username:password@ip:port