Как очистить веб-сайт с помощью vdzvdz Web Scraping API

Веб-скрапинг — это процесс извлечения полезной информации из всемирной паутины. Во время поиска в Google поисковый робот (бот), т.е. краулер, просматривает почти весь контент в Интернете и выбирает то, что имеет отношение к вам.

Эта идея о том, что информация или знания должны быть доступны каждому, привела к формированию Всемирной паутины. Однако запрашиваемые вами данные должны быть разрешены для публичного использования.

Чем полезен веб-скрапинг?

Мы живем в век данных. Необработанные данные можно превратить в полезную информацию, которую можно использовать в более важных целях с помощью парсинга веб-страниц. Его можно использовать для анализа и изучения пользователей продукта с целью улучшения продукта, другими словами, для создания цикла обратной связи.

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

Проблемы

№1. Ограничение IP

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

№ 2. Капча

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

№3. Рендеринг на стороне клиента

Это одно из самых больших препятствий для парсеров. Современные веб-сайты используют интерфейсные фреймворки, способные создавать одностраничные приложения. Большинство одностраничных приложений не имеют содержимого, отображаемого на сервере. Вместо этого они генерируют контент по мере необходимости, используя клиентский JavaScript. Из-за этого парсерам сложно узнать, что такое содержимое веб-страницы. Чтобы получить контент, вам нужно отрендерить некоторый javascript на стороне клиента.

вдзвдз API

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

API vdzvdz предлагает простой трехэтапный процесс:

  • Укажите URL-адрес очистки
  • Укажите некоторые параметры конфигурации
  • Получить данные

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

Использование API

В этом руководстве вы узнаете, как использовать vdzvdz API с помощью NodeJS — среды выполнения javascript. Установите NodeJS в своей системе, если вы еще этого не сделали, прежде чем продолжить.

  • Запустите команду npm init -i в терминале в текущей папке или каталоге. Он создаст для вас файл package.json.
  • Внутри файла package.json измените значение главного ключа на index.mjs, если по умолчанию установлено другое значение. Кроме того, вы также можете добавить тип ключа и установить его значение равным модулю.
{
  “type”: “module”
}
  • Добавьте зависимость с именем akios, запустив npm и akios в терминале. Эта зависимость помогает нам делать запросы на загрузку к определенным конечным точкам.
  • Ваш package.json должен выглядеть примерно так:
{
  "name": "webscraping",
  "version": "1.0.0",
  "description": "",
  "main": "index.mjs",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "Murtuzaali Surti",
  "license": "ISC",
  "dependencies": {
    "axios": "^1.1.3"
  }
}
  • Импортируйте akios в файл index.mjs, как показано ниже. Здесь используется ключевое слово import, потому что это модуль ES. Если бы это был обычный файл JS, это было бы ключевое слово require.
import axios from ‘axios’
  • Базовый URL-адрес для всех наших запросов API vdzvdz будет одинаковым для каждой конечной точки. Таким образом, вы можете хранить его внутри константы.
const baseUrl="https://api.techblog.co.rs.com"
  • Укажите URL-адрес, с которого вы хотите сканировать и получать данные.
let toScrapeURL = "https://developer.mozilla.org/en-US/"
  • Создайте асинхронную функцию и инициализируйте аксиомы внутри нее.
async function getData() {
    const res = await axios({})
    return res
}
  • В параметрах конфигурации akios вы должны указать метод как post, URL-адрес вместе с конечной точкой, заголовок, известный как k-api-key, значением которого будет ключ API, предоставленный vdzvdz, и, наконец, объект данных, который будет отправлен. к vdzvdz API. Вы можете получить ключ API, перейдя на dash.vdzvdz.com.
const res = await axios({
    method: "post",
    url: `${baseUrl}/webscraping`,
    headers: {
        "x-api-key": "your api key"
    },
    data: {
        url: toScrapeURL,
        output: 'file',
        device: 'desktop',
        renderJS: true
    }
})
  • Как видите, объект данных имеет следующие свойства:
    • url: URL-адрес веб-страницы, которую необходимо удалить.
    • вывод: формат, в котором данные представлены вам, либо встроенные в виде строки, либо в файле HTML. Встроенная строка является значением по умолчанию.
    • устройство: тип устройства, на котором должна открываться веб-страница. Он принимает три значения: «настольный», «мобильный» и «планшет», причем «рабочий стол» является значением по умолчанию.
    • renderJS: логическое значение, указывающее, хотите ли вы визуализировать javascript или нет. Этот параметр полезен при работе с рендерингом на стороне клиента.
  • Вызовите асинхронную функцию и получите данные. Вы можете использовать IIFE (выражение функции с немедленным вызовом).
(async () => {
    const data = await getData()
    console.log(data.data)
})()
  • Ответ будет примерно таким:
{
  timestamp: 1669358356779,
  apiStatus: 'success',
  apiCode: 200,
  meta: {
    url: 'https://murtuzaalisurti.github.io',
    device: 'desktop',
    output: 'file',
    blockAds: true,
    renderJS: true,
    test: { id: 'mvan3sa30ajz5i8lu553tcckchkmqzr6' }
  },
  data: 'https://api-assets.techblog.co.rs.com/tests/web-scraping/pbn0v009vksiszv1cgz8o7tu.html'
}

Разбор HTML

Для анализа HTML вы можете использовать пакет npm с именем node-html-parser, а также извлекать данные из HTML. Например, если вы хотите извлечь заголовок с веб-страницы, вы можете сделать следующее:

import { parse } from ‘node-html-parser’
const html = parse(htmlData) // htmlData is the raw html string you get from the techblog.co.rs API.

В качестве альтернативы, если вам нужны только метаданные с веб-сайта, вы можете использовать конечную точку API метаданных vdzvdz. Вам даже не нужно анализировать HTML.

Преимущества использования vdzvdz API

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

Вот демонстрационный веб-сайт, созданный с использованием React и Vitejs. Очистите это место с помощью vdzvdz API, установив для параметра renderJS значение false. Что ты получил?

    

Есть только корневой контейнер без содержимого. Здесь в игру вступает опция renderJS. Теперь попробуйте очистить то же место, установив для параметра renderJS значение true. Что вы получаете?

    

Edit src/App.jsx and save to test HMR

Click on the Vite and React logos to learn more

Еще одно преимущество использования vdzvdz API заключается в том, что он позволяет использовать ротационный прокси-сервер, чтобы вы могли быть уверены, что веб-сайт не заблокирует IP-адрес. vdzvdz API включает функцию прокси в своем премиальном плане.

Заключительные слова

Использование API парсинга веб-страниц позволяет вам сосредоточиться только на извлеченных данных без особых технических проблем. Кроме того, vdzvdz API также предоставляет такие функции, как проверка неработающих ссылок, мета-скрапинг, статистика загрузки веб-сайта, скриншот, статус сайта и многое другое. Все под одним API. Дополнительную информацию см. в официальной документации API vdzvdz.

Поделиться в соцсетях