Googlescraper - это инструмент с открытым исходным кодом и останется инструментом с открытым исходным кодом в будущем.
Также современный преемник Googlescraper, общей целевой инфраструктуры, останется с открытым исходным кодом и свободным.
Некоторые люди, однако, хотели бы быстро иметь услугу, которая позволяет им соскрести некоторые данные из Google или любой другой поисковой системы. По этой причине я создал веб -сервис Scrapeuloury.com.
Последний штат: февраль 2019
Преемник GoogleScraper можно найти здесь
Это означает, что я больше не буду поддерживать этот проект. Вся новая разработка идет в вышеупомянутом проекте.
Есть несколько причин, по которым я не буду продолжать прилагать много усилий в этот проект.
По этой причине я собираюсь продолжить разработку библиотеки скребки под названием https://www.npmjs.com/package/se-craper в JavaScript, который работает на вершине кукловода.
Вы можете скачать приложение здесь: https://www.npmjs.com/package/se-craper
Он поддерживает широкий спектр различных поисковых систем и гораздо более эффективен, чем GoogleScraper. База кода также гораздо менее сложна без потоков/очередей и сложных возможностей регистрации.
По вопросам вы можете связаться со мной на моем Wegpage и написать мне электронное письмо.
Этот проект вернулся к жизни после двух лет оставления. В ближайшие недели мне понадобится некоторое время, чтобы обновить все функции до самых последних разработок. Это охватывает обновление всех регуляторов и изменений в поведении поисковых систем. Через пару недель вы можете ожидать, что этот проект снова будет работать, как задокументирован здесь.
Googlescraper записана в Python 3. Вы должны установить хотя бы Python 3.6. Последнее крупное развитие было сделано с Python 3.7. Поэтому, например, при использовании Ubuntu 16.04 и Python 3.7 установите Python 3 из официальных пакетов. Я использую распределение Anaconda Python, которое очень хорошо работает для меня.
Кроме того, вам необходимо установить браузер Chrome, а также хромидривер для режима селена. В качестве альтернативы установите браузер Firefox и Geckodriver для режима селена. См. Инструкции ниже.
Вы также можете удобно установить GoogleScraper с PIP:
virtualenv --python python3 env
source env/bin/activate
pip install GoogleScraper
Прямо сейчас (сентябрь 2018 г.) это обескуражено. Пожалуйста, установите из последних источников GitHub.
Иногда самые новые и самые потрясающие вещи не доступны в сыпе (так они называют https://pypi.python.org/pypi/pip). Поэтому, возможно, вы хотите установить GoogleScraper из последнего источника, который находится в этом репозитории GitHub. Вы можете сделать это так:
virtualenv --python python3 env
source env/bin/activate
pip install git+git://github.com/NikolaiT/GoogleScraper/
Обратите внимание, что некоторые функции и примеры могут не работать, как и ожидалось. Я также не гарантирую, что приложение даже работает. Я гарантирую только (по крайней мере, в определенной степени), что установка из PIP даст полезную версию.
Загрузите последний Chromedriver отсюда: https://sites.google.com/a/chromium.org/chromedriver/downloads
Распространение драйвера и сохранить его где -нибудь, а затем обновить chromedriver_path в файле конфигурации GoogleScraper scrape_config.py по пути, на котором вы сохранили драйвер chromedriver_path = 'Drivers/chromedriver'
Загрузите последнюю Geckodriver отсюда: https://github.com/mozilla/geckodriver/releases
Разанипируйте драйвер и сохраните его где -нибудь, а затем обновите geckodriver_path в файле конфигурации GoogleScraper scrape_config.py по пути, на котором вы сохранили драйвер geckodriver_path = 'Drivers/geckodriver'
Обновите следующие настройки в файле конфигурации GoogleScraper scrape_config.py для ваших значений.
# chrome driver executable path
# get chrome drivers here: https://chromedriver.storage.googleapis.com/index.html?path=2.41/
chromedriver_path = 'Drivers/chromedriver'
# geckodriver executable path
# get gecko drivers here: https://github.com/mozilla/geckodriver/releases
geckodriver_path = 'Drivers/geckodriver'
# path to firefox binary
firefox_binary_path = '/home/nikolai/firefox/firefox'
# path to chromium browser binary
chrome_binary_path = '/usr/bin/chromium-browser'
Установите, как описано выше. Убедитесь, что у вас есть драйверы селена для Chrome/Firefox, если вы хотите использовать GoogleScraper в режиме селена.
Смотрите все варианты
GoogleScraper -h
Соскребайте одно ключевое слово «Apple» в режиме HTTP:
GoogleScraper -m http --keyword "apple" -v info
Соскажите все ключевые слова, которые находятся в файле SearchData/5words в режиме селена, используя Chrome в режиме без головы:
GoogleScraper -m selenium --sel-browser chrome --browser-mode headless --keyword-file SearchData/5words -v info
Соскребайте все ключевые слова, которые находятся в
GoogleScraper -m http --keyword-file SearchData/some_words.txt --num-workers 5 --search-engines "bing,yahoo" --output-filename threaded-results.json -v debug
Сделайте поиск изображения ключевого слова "K2 Mountain" в Google:
GoogleScraper -s "google" -q "K2 mountain" -t image -v info
Это, наверное, самая удивительная особенность GoogleScraper. Вы можете скрепить с тысячами запросов в секунду, если либо
Пример для асинхронного режима:
Поиск ключевых слов в файле ключевых слов SearchData/Marketing-Models-brands.txt на Bing и Yahoo. По умолчанию асинхронный режим порождает 100 запросов одновременно. Это означает около 100 запросов в секунду (зависит от фактического соединения ...).
GoogleScraper -s "bing,yahoo" --keyword-file SearchData/marketing-models-brands.txt -m http-async -v info -o marketing.json
Результаты (частичные результаты, потому что было слишком много ключевых слов для одного IP -адреса) могут быть проверены в результатах файлов/Marketing.json.
Googlescraper очень сложный. Поскольку GoogleScraper поддерживает многие поисковые системы, и HTML и JavaScript этих поставщиков поиска часто меняется, часто в том, что GoogleScraper перестает функционировать для некоторой поисковой системы. Чтобы заметить это, вы можете запустить функциональные тесты .
Например, тест ниже запускает сеанс соскоба для Google и Bing и тесты, которые собранные данные выглядят более или менее нормально.
python -m pytest Tests/functional_tests.py::GoogleScraperMinimalFunctionalTestCase
GoogleScraper анализирует результаты поисковой системы Google (и многие другие поисковые системы _ ) легко и быстро. Это позволяет вам извлекать все найденные ссылки и их названия и описания программно, что позволяет вам дальше обрабатывать накопленные данные.
Существуют неограниченные сценарии использования :
Прежде всего, вам нужно понять, что GoogleScraper использует два совершенно разных подхода к соскобке :
urllib.request или requests модули. Это имитирует пакеты HTTP, отправленные настоящими браузерами.В то время как первый подход был реализован в первую очередь, более поздний подход выглядит гораздо более перспективным в сравнении, потому что поисковые системы не имеют простого способа его обнаружения.
Googlescraper реализован с помощью следующих методов/программного обеспечения:
В настоящее время поддерживаются следующие поисковые системы:
Сокращение является критическим и очень сложным предметом. Google и другие поисковые гиганты имеют сильную склонность сделать скребки максимально сложной жизнью. У поставщиков поисковых систем есть несколько способов обнаружить, что робот использует свою поисковую систему:
Таким образом, самое большое препятствие для борьбы - это алгоритмы обнаружения JavaScript. Я не знаю, что делает Google в их JavaScript, но скоро я буду исследовать его дальше, а затем решу, не лучше ли изменять стратегии и переключаться на подход, который царапится, моделируя браузеры в браузерной среде , которая может выполнить JavaScript. Сеть каждого из этих виртуальных браузеров прокси -имитируется таким образом, что он ведет себя как реальный физический пользовательский агент. Я почти уверен, что, должно быть, можно было бы параллельно обрабатывать 20 таких сеансов браузера, не слишком напрягая ресурсы. Настоящая проблема в том, что всегда отсутствие хороших доверенных лиц ...
Как упомянуто выше, есть несколько недостатков при соскобке с urllib.request или requests модулей и самостоятельно создавать сеть:
Браузеры являются чрезвычайно сложными программными системами. Chrome имеет около 8 миллионов линии кода и Firefox даже 10 LOC. Огромные компании вкладывают много денег, чтобы продвигать технологии вперед (HTML5, CSS3, новые стандарты), и каждый браузер имеет уникальное поведение. Поэтому практически невозможно имитировать такой браузер вручную с помощью HTTP -запросов. Это означает, что у Google есть многочисленные способы обнаружения аномалий и несоответствий при использовании просмотра. В одиночку динамическая природа JavaScript делает невозможным очистку незамеченной.
Это кричит о альтернативном подходе, который автоматизирует настоящий браузер с Python. Лучше всего контролировать браузер Chrome, поскольку Google имеет наименьшие стимулы для ограничения возможностей для своего собственного браузера. Следовательно, мне нужен способ автоматизировать хром с помощью Python и управление несколькими независимыми экземплярами с различными наборами прокси. Затем выход результатов линейно растет с количеством использованных прокси ...
Некоторые интересные технологии/программное обеспечение для этого:
Вероятно, лучший способ использовать GoogleScraper - это использовать его из командной строки и выпустить команду, например, следующее:
GoogleScraper --keyword-file /tmp/keywords --search-engine bing --num-pages-for-keyword 3 --scrape-method selenium
Здесь Sel отмечает режим скребки как «селен». Это означает, что Googlescraper.py Scrates с реальными браузерами. Это довольно мощно, так как вы можете очистить длинные и много сайтов (Google трудно блокировать настоящие браузеры). Аргумент флага --keyword-file должен быть файлом с ключевыми словами, разделенными Newlines. SO: для каждого запроса Google одна строка. Легко, не так ли?
Кроме того, вариант --num-pages-for-keyword означает, что GoogleScraper принесет 3 последовательных страницах для каждого ключевого слова.
Пример ключевого слова:
keyword number one
how to become a good rapper
inurl:"index.php?sl=43"
filetype:.cfg
allintext:"You have a Mysql Error in your"
intitle:"admin config"
Best brothels in atlanta
После скребки вы автоматически получите новую базу данных SQLite3 в названной google_scraper.db в том же каталоге. Вы можете открыть и осмотреть базу данных с помощью команды:
GoogleScraper --shell
Это не должно быть проблемой скрепить 10 000 ключевых слов за 2 часа . Если вы действительно сумасшедшие, установите максимальные браузеры в конфигурации немного выше (в верхней части файла скрипта).
Если хотите, вы можете указать флаг --proxy-file . В качестве аргумента вам необходимо пропустить файл с прокси в нем и со следующим форматом:
protocol proxyhost:proxyport username:password
(...)
Пример:
socks5 127.0.0.1:1080 blabla:12345
socks4 77.66.55.44:9999 elite:js@fkVA3(Va3)
Если вы хотите использовать Googlescraper.py в режиме http (что означает, что необработанные заголовки HTTP отправляются), используйте его следующим образом:
GoogleScraper -m http -p 1 -n 25 -q "white light"
Если вам хочется связаться со мной, сделайте это и отправьте мне почту. Вы можете найти мою контактную информацию в моем блоге.