Skip to content

Instantly share code, notes, and snippets.

@tananin
Last active August 28, 2021 10:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tananin/9b49fbbd1596f606d85ced58b389db61 to your computer and use it in GitHub Desktop.
Save tananin/9b49fbbd1596f606d85ced58b389db61 to your computer and use it in GitHub Desktop.

Маскировка и скрытие парсинга

Сервис позволяющий определить бота: https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html Если открыть данный сервис в Selenium будет определён наличие вебдрайвера

https://www.youtube.com/watch?v=KMSC1yzJRSI

Настройи Firefox

Фаерфох позволяет менять любые настройки браузера через конфигуратор about:config (набрать в строке запросов)

Настнойка для Chrome

  from selenium import webdriver
  
  # Options
  option = webdriver.ChromeOptions()
  
  # disable detected WebDriver
  option.add_argument("--disable-blink-features=AutomationControlled")
  
  browser = webdriver.Chrome(options=option)
  browser.get('https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html')

Selenium

Веб парсер работающий через бразуер, позволяющий видеть ход парсинга, позволяющий запускать JS. Работает через драйвер браузера.

Установка, драйверов

Необходимо установить Geckodriver и Chromedriver скачиваем и копируем в директорию /usr/local/bin/

Google Chrome

Внимание необходимо сверить версию Хрома и версию драйвера!

  1. Скачиваем из раздела Relese нужную версию драйвера.
  2. Копируем скаченный файл в: /usr/local/bin/
  3. Скачиваем драйвер для Хрома: https://sites.google.com/a/chromium.org/chromedriver/downloads
  4. Копируем скаченный файл в: /usr/local/bin/
  5. Перезапустим терминал

Установка модуля

Открываем новый проект, создаем окружение, устанавливаем модуль Selenium

pip install selenium

Проверка

from selenium import webdriver
driver = webdriver.Firefox()

Должен открыться браузер Firefox

Методы Selenium

Метод Действие Опции
get(url) Открыть браузер УРЛ адрес
close() Закрыть браузер -
quit() Закрыть браузер -
refresh() Перезагрузить страницу -
save_screenshot(file) Скриншот файл в формате png
find_element() Найти один обьект -
find_elements() Найти все обекты на странице -
click() Клик по элементу -

Скрол страницы

  1. Подключаем класс keys

    from selenium.webdriver.common.keys import Keys

  2. Находим тэг HTML

  3. Нажимаем кнопку Down

    import time

    from selenium import webdriver from selenium.webdriver.common.keys import Keys

    browser = webdriver.Firefox() browser.get('http://blog.programmer-web.ru') time.sleep(2)

    html = browser.find_element_by_tag_name('html')

    for i in range(10): html.send_keys(Keys.PAGE_DOWN)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment