Code Monkey home page Code Monkey logo

parsing_thru_proxy's Introduction

Facebook parsing

Проект состоит из двух модулей:

  • Парсинг прокси
  • Парсинг facebook

Парсинг прокси (scrap_proxy.py):

  • Прокси достаются с https://free-proxy-list.net/
  • Проверяются на статус ALIVE (живое ли прокси)
  • Проверка всех прокси происходит в разных потоках для ускорения отправки множества запросов
  • Ссылки со статусом ALIVE заносятся в БД SQLite
    • Время работы алгоритма для 300 прокси в 30 потоках - около 1.5 мин

Парсинг facebook (main.py):

  • Из БД берутся прокси и происходит попытка открыть страницу авторизации facebook
  • Если после создания драйвера, он содержит валидный HTML запрашиваемой страницы, то алгоритм продолжается
  • Происходит авторизация с заполнением нужных полей (заполняю данными своего аккаунта)
  • После успешной авторизации происходит переход на целевую URL
  • На целевой URL осуществляется скролинг страницы вниз и парсинг данных
  • Данные сохраняются в БД

Чего получилось достигнуть:

  • Собирать живые прокси и сохранять их в БД
  • В режиме headless_mode=False получилось осуществить парсинг юзеров целевой группы (браузер при этом открывается)
  • Сохранять полученные данные в БД

Что не получилось:

  • Не высокая стабильность
  • Не получилось спарсить данные в теневом режиме (без открытия браузера): алгоритм умирает на этапе получения данных со старицы группы

Что можно улучшить:

  • Вероятно нужно как-то изменить конфигурацию драйвера, чтобы headless_mode=True получилось парсить данные
  • Создавать отдельную таблицу с прокси, с помощью которых удался парсинг
  • Написать алгоритмы, которые бы обходили всплывающие окна и когда надо нажимали "ОК"
  • В будущем попробовать работать с API вместо простого скрабинга

Заметки:

  • В качестве юзер агента использовал данные со своего ПК, где я авторизовывался ранее
  • Регистрация проходит только с ссылки: "https://m.facebook.com/login.php?refsrc=https%3A%2F%2Fm.facebook.com%2F&refid=8"
  • Проверку на валидациию хромом драйвера проверял с помощью сервиса:https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html
  • Пришлось убрать следующие настройки конфигурации:
    • chrome_options.add_argument('--no-sandbox')
    • chrome_options.add_argument('--disable-dev-shm-usage')
  • При переходе на страницу с группой перед скроллингом требовалось сымитировать нажатие курсора (иначе страница блёклая и НЕ активная)
  • По дефолту скролю минуту, не до конца

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.