Обход IP-адресов с помощью прокси-серверов и веб-краулеров: Решение проблемы сбора данных
Что такое веб-краулер? Что он может делать?
Веб-краулер, также известный как веб-паук, веб-робот или автоматический индексатор, - это автоматизированный скрипт или программа, используемая для систематического просмотра и веб-скрепинга содержимого веб-страниц в Интернете.
Проще говоря, веб-краулер похож на робота. Просто задав набор правил, он может автоматически просматривать веб-страницы в соответствии с этими правилами и собирать все необходимые данные, что значительно экономит трудозатраты.
Веб-краулер может просматривать все сайты авиакомпаний, чтобы помочь пользователям найти самые дешевые билеты. Он также может собирать данные в режиме реального времени в таких областях, как электронная коммерция, здравоохранение и недвижимость. Помимо веб-скрапинга, Web Crawler может отправлять данные, чтобы помочь пользователям бронировать билеты и входить на различные платформы. Он также может анализировать горячие темы общественных дискуссий или собирать данные о фондовом рынке, чтобы помочь в принятии инвестиционных решений. Рыночная стоимость этих отраслей достигла миллиардов долларов.
Как важная часть поисковой системы, основная функция краулера - перебирать веб-данные. В настоящее время популярные на рынке программы-коллекторы используют принцип или функцию веб-краулеров.
Многие компании получили значительные преимущества для бизнеса, используя технологию веб-краулеров, не только для повышения эффективности сбора данных, но и для предоставления пользователям высококачественных информационных услуг. Итак, как же применить эту технологию в наших проектах?
Как заработать на веб-краулерах?
Ценность веб-краулера - это ценность данных. Для начала представьте, что Вы - торговый посредник или продавец электронной коммерции, которому приходится конкурировать с сотнями конкурентов. Цена и товарный запас - Ваши главные конкурентные преимущества. Доступ к информации в режиме реального времени и возможность корректировать цены, когда конкуренты снижают цены или у них заканчиваются запасы, могут привести к значительным выгодам. Но большинство компаний не позволят Вам получить доступ к информации, и даже если API будет предоставлен, Вы можете столкнуться с проблемами, связанными с ограничениями по ставкам, устаревшей информацией и другими вопросами, которые могут подорвать актуальность системы. Поэтому Вам необходимо создать веб-краулер, который будет работать за Вас.
Кроме того, рептилии могут приносить доход в следующих отраслях: Ищу работу по аутсорсингу рептилий. Самый обычный способ заработка на веб-скрапинге - это аутсорсинг веб-сайтов, выполнение небольших и средних проектов по краулингу и предоставление услуг, таких как веб-скрапинг, структурирование данных, очистка данных и т.д., стороне «А». Большинство начинающих программистов сначала попробуют себя в этом направлении, напрямую полагаясь на технические средства заработка, но это также и лучший способ для технических специалистов, однако из-за большого количества конкурентов цена может быть не очень дорогой. Сбор данных для сайта. Вы можете собирать данные с помощью Python crawler, чтобы сделать сайт для заработка, хотя доход не очень объективен, но после создания он не требует особого обслуживания, это также считается пассивным доходом. Работающие студенты колледжа. Если Вы работающий студент колледжа, математик или специалист в области компьютерных технологий, способности к программированию в порядке, Вы можете получить небольшие знания в области программирования, такие как библиотеки краулеров, парсинг HTML, хранение контента и т.д., сложность также заключается в понимании ранжирования URL, симуляции входа в систему, идентификации CAPTCHA, многопоточности и т.д., Если Вы хотите зарабатывать деньги с помощью краулера, то можете поискать небольшое количество проектов по захвату данных Если Вы хотите зарабатывать деньги с помощью краулера, то можете найти небольшое количество проектов по захвату данных, немного набравшись опыта, Вы можете попробовать взять несколько проектов по мониторингу или крупномасштабный проект по захвату данных. Ответственность Если Вы сами занимаетесь краулером на Python, заработать деньги очень просто. Человек, занимающий эту должность, лучше знаком с процессом разработки проекта, имеет опыт инженерной работы и может разумно оценить сложность, время и стоимость задачи, поэтому Вы можете попробовать найти несколько крупномасштабных задач по захвату, задач по мониторингу, задач по входу и захвату мобильных симуляторов и т.д., и заработок будет очень значительным.
Как управлять веб-краулером на практике?
Я нашел автоматизированный веб-краулер, который сканирует товары на торговых площадках электронной коммерции, автоматически отслеживает изменения цен и предупреждает нас о необходимости внести коррективы, чтобы воспользоваться открывающимися возможностями. Используя популярные фреймворки, такие как DrissionPage, я посещаю веб-сайты, сканирую их в поисках товаров, разбираю HTML, получаю цену и сохраняю ее в базе данных, а затем смотрю, изменилась ли цена.
Я устанавливаю временные интервалы для автоматического запуска сканера, каждый день, каждый час или каждую минуту по запросу. Как Вы можете видеть, у меня есть инструмент поиска товаров, который анализирует цены в электронной коммерции и автоматически захватывает товары на Amazon каждый день. Я могу включить или отключить отслеживание товаров, добавлять новые товары и просматривать цены.
Управлять этим автоматическим веб-краулером в PyCharm очень просто. Во-первых, Вам нужно скачать PyCharm, создать новый проект и убедиться, что Вы выбрали создание нового Porfiles. Затем активируйте виртуальный Porfiles в терминале PyCharm и выполните командуpip installDrissionPageto для установки необходимых пакетов. Затем щелкните правой кнопкой мыши на директории проекта и выберитеNew>PythonFile, чтобы создать новый Python-файл (например,main.py), скопируйте и вставьте в него приведенный выше код. Наконец, щелкните правой кнопкой мыши на файле main.py и выберите Run 'main' или используйте клавиши быстрого доступаShift+F10 для запуска скрипта, чтобы увидеть результаты в терминале и найти сгенерированный файлdata.json и файл журналаscraper.log в директории проекта.
- import time
- from DrissionPage import ChromiumOptions
- from DrissionPage import WebPage
- импортировать json
- import logging
- # Настройте ведение журнала
- logging.basicConfig(filename='scraper.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
- try:
- co = ChromiumOptions()
- co.headless()
- page = WebPage(chromium_options=co)
- page.get(«https://www.amazon.com/»)
- page.ele(«#twotabsearchtextbox»).click()
- ключевое слово = input("Пожалуйста, введите ключевое слово и нажмите Enter: »)
- page.ele(«#twotabsearchtextbox»).input(keyword)
- page.ele(«#nav-search-submit-button»).click()
- goods_eles = page.eles('xpath://*[@id=«search»]/div[1]/div[1]/div/span[1]/div[1]/div')
- logging.info(«Начинаем поиск данных...»)
- data = []
- for goods_ele in goods_eles:
- if not goods_ele.attrs['data-asin']:
- продолжите
- название_товара = goods_ele.ele('xpath://h2/a/span').text
- goods_href = goods_ele.ele('xpath://h2/a').link
- goods_price_ele = goods_ele.ele('xpath:/div/div/span/div/div/div[2]/div/div/span[2]')
- если len(goods_price_ele) == 1:
- goods_price = goods_price_ele[0].text
- elif len(goods_price_ele) > 1:
- goods_price = goods_price_ele[1].text
- else:
- continue
- если '$' нет в goods_price:
- continue
- logging.info(f «Название товара: {goods_name}»)
- logging.info(f «Цена товара: {goods_price}»)
- logging.info(f «Ссылка на товар: {goods_href}»)
- logging.info('=' * 30)
- data.append({
- «name": goods_name,
- «цена": goods_price,
- «link": goods_href
- })
- logging.info('Data scraping completed')
- Сохраните данные в файл
- with open(«data.json», «w», encoding=«utf-8») as f:
- json.dump(data, f, ensure_ascii=False, indent=4)
- logging.info(«Данные были сохранены в файл data.json»)
- except Exception as e:
- logging.error(«Произошла ошибка:», exc_info=True)
После того, как PyCharm нажмет кнопку Run. *Введите ключевые слова: Вы ввели ключевые слова для поиска. *Сбор данных: скрипт ищет и собирает информацию о товарах, связанных с ключевыми словами, на Amazon.com. *Сохранение данных: Собранные данные сохраняются в файлеdata.json, а журнальная информация - в файлеscraper.log.
Вот пример на примере поиска браслетов на amazon:
Щелкните на изображении, чтобы увидеть подробности о товаре.
Но краулер часто блокируется сайтом, пока я его запускаю, так что же мне с этим делать?
Трудности и контрмеры для веб-краулеров: как ползать, не будучи заблокированным?
Каждый раз, когда я пытаюсь это сделать, многие сайты достаточно умны, чтобы обнаружить ботов, у них есть CAPTCHA и они не дают Вам проползти к данным. У них есть тактика борьбы с краулерами, такая как блокировка IP-адресов, CAPTCHA, эти «барьеры» влияют на эффективность краулинга и зарабатывание денег. После многих попыток сайт блокируется. Каково же решение этой проблемы?
На этот раз Вы можете использовать для работы прокси-серверы, принцип работы прокси-серверов очень прост, мы ползаем по сайту, когда будет запрос, который нужно отправить на сервер, мы напрямую обращаемся к времени, сервер будет знать наш IP-адрес, при слишком частом посещении сайт будет заблокирован, но мы можем сначала отправить запрос на прокси-сервис, прокси-сервис поможет нам отправить запрос. Таким образом, сайт, который просматривается, не будет знать, какой у нас IP.
Здесь я рекомендую PROXY.CC, которым я пользуюсь уже долгое время. У него есть три типа прокси: Rotating Residential Proxies, Static Residential Proxies и Unlimited Traffic Proxies:
Rotating Residential Proxies - это вращающиеся прокси, где каждый IP-адрес резидентов представляет собой страну и город, которые можно выбрать, что помогает пользователям точно определять геолокацию и получать доступ к информации эффективно и безопасно. Static Residential Proxies предоставляют фиксированные реальные IP-адреса, чтобы гарантировать, что пользователи используют одни и те же IP-адреса в течение длительного времени, улучшить стабильность и безопасность доступа, а также скрыть реальные IP-адреса пользователей.
Прокси с неограниченным трафиком предоставят неограниченный трафик на прокси для жилых домов, чтобы обеспечить эффективный и безопасный доступ к информации и скрыть реальный IP пользователя. Очень подходит для задач с высоким трафиком, если Вам необходимо выполнять крупномасштабный сбор данных и автоматическое тестирование и если нет требований к расположению страны/города, этот пакет настоятельно рекомендуется, он значительно снизит стоимость биллинга за поток.
Он может автоматически разблокировать веб-сайты, подключаться к прокси-серверам, вращать Ваш IP-адрес, разрешать CAPTCHA и делать Вас беззаботным веб-краулером.PROXY Web Scraping.
Кроме того, он допускает неограниченное количество одновременных сессий, что означает, что сотни экземпляров краулера могут работать одновременно, не ограничиваясь обработкой на одной или локальной машине. Если Вы хотите узнать больше о PROXY.CC, Вы можете перейти по ссылке, чтобы ознакомиться с ним и испытать мощные возможности PROXY.CC. Вы также можете получить 500 МБ бесплатного трафика при первой регистрации, обратившись в службу поддержки.PROXY.CC Residential Proxies Tutorials
Я приобрел Residential Proxies здесь, просто добавьте содержимое сгенерированных прокси в это место, я использую API Extraction, результат извлечения предполагается как [5.78.24.25:23300].
Оригинальный код: ``попытка: co = ChromiumOptions() co.headless() page = WebPage(chromiumoptions=co) page.get(«https://www.amazon.com/») page.ele(«twotabsearchtextbox»).click() ключевое слово = ввод("Пожалуйста, введите ключевое слово и нажмите Enter: ») page.ele(«twotabsearchtextbox»).input(keyword) page.ele(«nav-search-submit-button»).click() goodseles = page.eles('xpath://*[@id=«search»]/div[1]/div[1]/div/span[1]/div[1]/div') logging.info(«Starting data scraping...»)
- Код после добавления прокси:
co = ChromiumOptions() co.headless() co.setproxy(«http://5.78.24.25:23300») page = WebPage(chromiumoptions=co) page.get(«https://api.ip.cc/») page.get(«https://www.amazon.com/») time.sleep(5) page.get(«https://www.amazon.com/s?k=fender+гитара») print(page.html) page.ele(«#twotabsearchtextbox»).click() ключевое слово = ввод("Пожалуйста, введите ключевое слово и нажмите Enter: ») page.ele(«#twotabsearchtextbox»).input(keyword) page.ele(«#nav-search-submit-button»).click() goods_eles = page.eles('xpath://*[@id=«search»]/div[1]/div[1]/div/span[1]/div[1]/div') print(«Начинаем поиск данных...») ```
Заключение
На практике технология веб-краулеров помогла многим предприятиям и частным лицам автоматизировать сбор данных, повысить эффективность работы и сэкономить много времени и средств. Однако в процессе работы краулер часто сталкивается с такими мерами по борьбе с краулингом веб-сайтов, как блокировка IP-адресов и аутентификация CAPTCHA. На данный момент для решения этих проблем можно использовать жилые прокси-сервисы, такие как PROXY.CC. С помощью прокси-сервиса краулеры могут скрывать свои реальные IP-адреса, чтобы избежать блокировки, и таким образом беспрепятственно осуществлять сбор данных.PROXY.CC предоставляет различные режимы работы прокси, такие как вращающиеся жилые прокси, статические жилые прокси и прокси с неограниченным трафиком, чтобы удовлетворить потребности различных пользователей. Прокси с неограниченным трафиком могут значительно снизить стоимость, особенно для пользователей, которым необходимо собирать большие объемы данных.