Python Webscraping Solution Требуются рекомендации - PullRequest
0 голосов
/ 03 июля 2018

Я хотел бы знать, какое решение PYTHON 3.x является наилучшим / предпочтительным (быстрое выполнение, простое в реализации, возможность указать пользовательский агент, отправить браузер и версию и т. Д. На веб-сервер, чтобы избежать попадания моего IP-адреса в черный список), который может очистить данные по всем нижеперечисленным вариантам (упомянутым в зависимости от сложности согласно моему пониманию).

  1. Любая статическая веб-страница с данными в таблицах / Div
  2. Динамическая веб-страница, которая завершает загрузку за один раз
  3. Динамическая веб-страница, требующая входа с использованием пароля и завершающей загрузки за один раз после входа в систему. Пример URL для пароля пользователя: https://dashboard.janrain.com/signin?dest=http://janrain.com
  4. Динамическая веб-страница, которая требует входа в систему с использованием oauth от популярного сервиса, такого как LinkedIn, Google и т. Д., И завершает загрузку сразу после входа в систему. Я понимаю, что это включает в себя некоторые перенаправления страниц, обработку токенов и т. Д. Пример URL для входа в систему на основе oauth: https://dashboard.janrain.com/signin?dest=http://janrain.com
  5. Все вышеприведенные пункты 4 в сочетании с возможностью выбора какого-либо раскрывающегося списка (скажем, «сортировка по дате») или могут включать выбор некоторых флажков, в зависимости от которых отображаемые динамические данные будут меняться. Мне нужно очистить данные после того, как действие флажков / выпадающих меню было выполнено, как любой пользователь сделал бы это, чтобы изменить отображение динамических данных Пример URL - https://careers.microsoft.com/us/en/search-results?rk=l-seattlearea У вас есть возможность раскрывающегося списка, а также некоторые флажки на странице
  6. Динамическая веб-страница с загрузкой Ajax, в которой данные могут продолжать загружаться как => 6.1 мы продолжаем прокручиваться вниз, как главная страница facebook, twitter или linkedin, чтобы получить данные Пример URL - Facebook, Twitter, ссылки и т. Д. => 6.2 или мы продолжаем нажимать какую-то кнопку / div в конце контейнера ajax, чтобы получить следующий набор данных; Пример URL - https://www.linkedin.com/pulse/cost-climate-change-indian-railways-punctuality-more-editors-india-/ Здесь вы должны нажать «Показать предыдущие комментарии» внизу страницы, если вам нужно просмотреть и почистить все комментарии

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

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Scrapy для вас, если вы ищете действительно масштабируемое пуленепробиваемое решение. На самом деле Scrapy Framework является отраслевым стандартом для задач обхода python.

Кстати: я бы посоветовал вам избегать рендеринга JS: все эти вещи (chromedriver, selenium, phantomjs) являются последним вариантом для сканирования сайтов. Большинство данных ajax можно анализировать, просто подделав необходимые запросы. Просто проводите больше времени на вкладке "сеть" Chrome.

0 голосов
/ 03 июля 2018
  1. Я бы рекомендовал использовать BeautifulSoup для ваших задач 1 и 2.
  2. Для 3 и 5 вы можете использовать Selenium WebDriver (доступно как библиотека python). Используя Selenium, вы можете выполнять все возможные операции (например, вход в систему, изменение выпадающих значений, навигацию и т. Д.), А затем вы можете получить доступ к веб-контенту по адресу driver.page_source (вам может понадобиться использовать функцию сна, чтобы дождаться, пока контент полностью загружен)
  3. Для 6 вы можете использовать их собственный API для получения списка новостных лент и их ссылок (в основном возвращаемый объект идет со ссылкой на конкретную новостную ленту), как только вы получаете ссылки, вы можете использовать BeautifulSoup для получения веб-контента.

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

...