Обнаружение очистки веб-страницы - PullRequest
0 голосов
/ 05 апреля 2020

Я нахожусь в середине проекта по науке о данных, и мне нужно собрать несколько данных с веб-сайта. К сожалению, все методы, которые я пробовал до сих пор, терпят неудачу, обнаруживаясь веб-страницей:

  1. запросы со случайным агентом или фальшивые гугл-боты
  2. запросы с заголовками моего веб-браузера
  3. селен
  4. скребковый API
  5. с использованием большого времени ожидания между последующими очистками

Роботы с целевой веб-страницы: пользовательский агент: Mediapartners- Google Disallow: пользовательский агент: * Disallow: / search Disallow: / automoto / search Disallow: / property / search Disallow: / static_html / promo / esales / phones / Disallow: / my / services User-agent: Twitterbot Disallow:

Я пытался как-то настроить кукловода, но не могу понять ...

Мне кажется странным, что нет способа симулировать ручную проверку кода и, следовательно, извлечение информации без ее идентификации как бота. !

У вас есть предложения? Получение этих данных абсолютно необходимо для реализации проекта. Мне не требуется скорость, предлагаемая вышеупомянутыми инструментами веб-автоматизации.

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Я столкнулся со сложностями, связанными с очисткой веб-сайтов и попаданием в них, особенно в Facebook (если вы хотите увидеть мою хитрую реализацию с использованием селена, см. this . Я не потворствую нарушению условий использования веб-сайта, и Я не несу ответственности за ваши действия по нарушению ToS ... НО

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

import time

min_allowable_time, max_allowable_time = (1, 7)  # this is in seconds.

for x in range(0, 100):
  your_scraping_function()
  time.sleep(random.uniform(min_allowable_time, max_allowable_time))
  your_next_page_function()

Здесь необходимо изменить время ожидания. Вы также можете использовать этот скребок для работы в определенное время суток, например, только с 08:00 до 22:00.

ps Мне было гораздо проще очищать мобильные сайты, т.е. www.m.facebook.com

0 голосов
/ 06 апреля 2020

Попробуйте (кукловод должен быть включен)

const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...