Рубрики
Без рубрики

Скрепление динамических веб-сайтов с помощью скребка API и Python

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

Автор оригинала: Adnan Siddiqi.

В последнем посте Scraping Series Я показал вам, как вы можете использовать Скребок API Чтобы соскрести веб-сайты, которые используют прокси, следовательно, ваш шанс получить заблокированный снижен. Сегодня я собираюсь показать, как вы можете использовать Скребок API Чтобы соскрести веб-сайты, которые используют AJAX для рендеринга данных с помощью JavaScript, приложений для одиночных страниц (SPA) или Scraping веб-сайтов с использованием фреймворков, таких как inventjs, angularjs или vuejs.

Я буду работать над тем же кодом, который я написал в Вводная пост Отказ Давайте работать на простом примере. Есть сайт, который рассказывает Ваш IP, называемый httpbin. Если вы загружаете через браузер, он скажет ваш реальный IP. Например, в моем случае он вернулся:

{ "origin": "12.48.217.89, 12.48.47.29" }

Конечно, не мой оригинальный IP. Мы получим доступ к этому API через вызов AJAX. Что я сделал, я сделал простую страницу, которая называется httpbin API через Ajax:

     Testing HTTP BIN    

Know your IP

Сохраните код выше в HTML-файле и загрузите его где-нибудь. Для демонстрации, я настроил это на Мой сайт И я буду загружать его в ближайшее время, так что попробуйте на своем собственном сервере! Когда вы проверяете источник просмотра, вы найдете что-то вроде ниже:

Как вы можете увидеть

с идентификатором IP пусто, что говорит вам, что данные отображаются по Другие средства Отказ Теперь я получаю доступ к странице через API скребка.

URL_TO_SCRAPE = 'http://adnansiddiqi.me/httpbin.html' payload = {'api_key': API_KEY, 'url': URL_TO_SCRAPE, 'render': 'true'} r = requests.get('http://api.scraperapi.com', params=payload, timeout=60) print(r.status_code) html = r.text.strip()

Вы видите это время, я прошел Визуализация: правда И когда я бегу, возвращает следующее: Как вы можете увидеть, что он оказывает страницу и вернул разметку, так же, как браузер без головы. Другая вещь, которую вы бы заметили, что он возвращает случайный IP. Иногда это происходит, что он может вернуть статическую разметку, потому что он не сможет загрузить представленные данные из-за проблем с сетью или что-то, чтобы не беспокоиться об этом, как вы можете попробовать еще раз. Хорошо, это было игрушечное приложение, как насчет тестирования его на каком-то «реальном» веб-сайте? Я выбираю Crichbuzz комментарию о одном из тестовых матчей, сыгранных между Англией и Австралией в Ashes (https://www.cricbuzz.com/cricket-vs- 5-5th– 2019). Одним из записей о доставке отображается ниже: Поиск на этой странице, открывая ViewSource, и вы не можете найти текст. Причина в том, что данные загружаются через API, а JavaScript отображает его. Теперь давайте попробуем это с помощью скребка API. Я только что изменил ценность URL_TO_SCRAPE выше. Поиск Джек Лич для Хэмлвуда И это вернуло следующее: Как вы можете видеть, это прямо там!

Заключение

В этом посте вы узнали, как легко использовать Scraper API для ползания динамических веб-страниц или соскреб экрана для веб-сайтов с поддержкой JavaScript. Вам не нужно делать отдельные настройки, нет необходимости установки и тратить время для настройки селениума + веб-драйвера. Вы можете использовать существующие знания и получить свои вещи. Все должны были установить оказывать Параметр на Правда Отказ Вам не нужно беспокоиться о доверенных IPS, ни вы не должны платить сотни долларов, особенно когда вы индивидуальны или работаете в стартапе. Компания я работаю с проведением 100-х долларов на ежемесячную основу только для доверенных IPS. О, если вы зарегистрируетесь здесь С моим реферальным звеном или введите промо-код adnan10 , вы получите 10% скидка в теме. Если вы не получите скидку, то просто дайте мне знать по электронной почте на своем сайте, и я бы наверняка поможет вам.

Этот пост был изначально опубликован здесь .