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

Создайте свой первый веб-скребок с API ScrapingBee API и Python

Узнайте, как использовать Cloud на основе Scraping API для Scrape Web-страниц без блокировки.

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

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

Что такое ScrapingBee

Если вы посетите их Сайт Вы найдете что-то вроде ниже:

SCRAPINGBEE API обрабатывает браузеры без головы и вращает прокси для вас.

Как это говорит о том, что он предлагает вам все возможное, чтобы иметь дело с проблемами, которые вы обычно встречаете, когда пишущие скребки, особенно наличие прокси и беговых соскоб. Нет установки веб-драйверов для Selenium, yay!

Разработка

ScrapingBee основан на API для отдыха, следовательно, его можно потреблять в любом языке программирования. Так как этот пост связан с Python, поэтому я был бы в основном сосредоточен на Запросы Библиотека для использования этого инструмента.

Как только вы зарегистрируетесь и подтвердите их, они предоставит вам ключ API, который вы можете увидеть на приборной панели. Они предоставляют 1000 бесплатных вызовов API, которые достаточно, чтобы проверить свою платформу. В противном случае они предлагают различные планы от Starter на предприятие, которое вы можете просмотреть здесь Отказ

Давайте попробуем простой пример.

import requests

if __name__ == '__main__':
    API_KEY = ''
    URL_TO_SCRAPE = 'https://httpbin.org/ip'

    params = {'api_key': API_KEY, 'url': URL_TO_SCRAPE, 'render_js': 'false'}

    r = requests.get('http://app.scrapingbee.com/api/v1/', params=params, timeout=20)

    if r.status_code == 200:
        html = r.text
        print(html)

При выполнении этого кода вы увидите вывод, как Ниже:

Вы заметили, каждый раз, когда он возвращает новый IP-адрес, круто, не так ли?

Вы также можете пройти свои собственные пользовательские заголовки, где это необходимо. Если я изменим URL_TO_SCRAPE к https://httpbin.org/headers Это будет сбросить заголовки по умолчанию.

params = {'api\_key': API\_KEY, 'url': URL\_TO\_SCRAPE, 'render\_js': 'false', 'forward\_headers': True}
 headers = {
 'Scn-User-Agent': 'My Custom ScrapingBee APP',
 'Scn-X-MyOwn-Header': 'ROFL'
 }
 r = requests.get('http://app.scrapingbee.com/api/v1/', params=params, timeout=20, headers=headers)
 
 if r.status\_code == 200:
 html = r.text
 print(html)

Поэтому я изменил URL of httpbin отображать заголовки. Сначала я установил параметр Forward_Headers как Правда А потом я переопределяю существующий заголовок, в этом случае Пользовательский агент Параметр как SCN-user-agent Отказ Согласно документам, вы должны установить SCN- в качестве префикса, чтобы переопределить существующий или добавить свой собственный. В нашем случае я добавил новый заголовок как SCN-X-Myown-Header Отказ Когда я запускаю это, он отображает следующее:

Круто, нет?

Создание SLX Scraper.

Как предыдущий Scraping Связанные сообщения Я собираюсь снова выбрать OLX для этого поста. Я вообще повторяю список, а затем будем соскребать отдельные предметы. Ниже приведен полный код.

from time import sleep

import requests
from bs4 import BeautifulSoup

if __name__ == '__main__':
    all_links = []
    API_KEY = ''
    URL_TO_SCRAPE = 'https://httpbin.org/headers'
    URL_TO_SCRAPE = 'https://www.olx.com.pk/tablets_c1455'

    params = {'api_key': API_KEY, 'url': URL_TO_SCRAPE, 'render_js': 'False', 'country_code': 'us'}

    r = requests.get('http://app.scrapingbee.com/api/v1/', params=params, timeout=20)

    if r.status_code == 200:
        html = r.text
        soup = BeautifulSoup(html, 'lxml')
        links = soup.select('.EIR5N > a')

        for link in links:
            all_links.append('https://www.olx.com.pk' + link['href'])

        idx = 0

        if len(all_links) > 0:

            for link in all_links:
                sleep(2)

                if idx > 1:
                    break

                params = {'api_key': API_KEY, 'url': link, 'render_js': 'False', 'country_code': 'us'}
                r = requests.get('http://app.scrapingbee.com/api/v1/', params=params, timeout=20)

                if r.status_code == 200:
                    html = r.text.strip()
                    soup = BeautifulSoup(html, 'lxml')
                    price_section = soup.find('span', {'data-aut-id': 'itemPrice'})
                    print(price_section.text)

                idx += 1

Я использую Beautifulsoup разбирать HTML. Я только извлекли цену здесь, потому что цель – рассказать о себе API, чем Beautifulsoup Отказ Вы должны увидеть мой пост здесь Если вы новичок для соскабливания и питона. Здесь я представил другой параметр, country_code который я использовал в США. Этот параметр гарантирует использовать прокси из США только вместо любой случайной страны. В любом случае, когда я соскребую Секция таблеток OLX он печатает следующее:

python intro.py
 Rs 12,999
 Rs 7,500

Заключение

В этом посте вы узнали, как использовать API SCRARGINGBEE для Craping целей. Все, что вы можете сделать с этим API, вы можете сделать это другими средствами; Этот API предоставляет вам все под зонтиком, особенно рендеринг страниц через JavaScript, для которого вам нужны безголовые браузеры, которые иногда становятся громоздкими, чтобы настроить вещи на удаленные машины для соскабливания без головы. SCRARGINGBEE API позаботится об этом и зарубея номинальные расходы для отдельных лиц и предприятий. Компания я работаю с проведением 100-х долларов на ежемесячную основу только для доверенных IPS.

О, если вы зарегистрируетесь здесь С моим реферальным звеном или введите промо-код Аднан , вы получите 10% скидка в теме. Если вы не получите скидку, то просто дайте мне знать по электронной почте на своем сайте, и я бы наверняка поможет вам.

В ближайшие дни я буду писать больше постов о API SCRARGINGBEE, обсуждая дополнительные функции.