Како да сцрапе веб локацију користећи вдзвдз Веб Сцрапинг АПИ

Веб сцрапинг је процес извлачења корисних информација са Ворлд Виде Веб-а. Током Гоогле претраге, веб пописивач (бот), тј. пописивач, пролази кроз скоро сав садржај на вебу и бира оно што је релевантно за вас.

Ова идеја да информације или знање треба да буду доступни свима довела је до формирања светске мреже. Међутим, подаци које тражите морају бити дозвољени за јавну употребу.

Како је корисно стругање веба?

Живимо у доба података. Необрађени подаци могу се претворити у корисне информације које се могу користити за веће сврхе уз помоћ веб скрапинга. Може се користити за анализу и проучавање корисника производа за побољшање производа, другим речима, за стварање повратне спреге.

Компаније за е-трговину могу да га користе за проучавање ценовних стратегија конкурената и у складу са тим разраде сопствене. Веб сцрапинг се такође може користити за временске прилике и извештавање о вестима.

Изазови

#1. ИП Рестрицтион

Неколико веб локација ограничава број захтева које можете да упутите да бисте добили податке о веб локацији у одређеном временском интервалу откривањем ваше ИП адресе или геолокације. Они то раде како би спречили злонамерне нападе на своју веб локацију.

#2. Цаптцха

Разликовање између правог човека и бота који покушава да приступи веб локацији је оно што цаптцха заправо раде. Веб локације га користе за спречавање нежељене поште на веб локацији, као и за контролу броја стругача на веб локацији.

#3. Рендеринг на страни клијента

Ово је једна од највећих препрека за веб стругаче. Модерне веб странице користе фронтенд оквире који су у стању да креирају апликације на једној страници. Већина апликација на једној страници нема садржај који се приказује на серверу. Уместо тога, они генеришу садржај према потреби користећи ЈаваСцрипт на страни клијента. Ово отежава стругачима да сазнају шта је садржај веб странице. Да бисте добили садржај, потребно је да прикажете неки јавасцрипт на страни клијента.

  Како сакрити подредите од р/алл

вдзвдз АПИ

АПИ за веб сцрапинг решава већину изазова са којима се сусреће приликом обављања веб стругања јер све решава уместо вас. Хајде да истражимо вдзвдз АПИ и видимо како га можете користити за веб сцрапинг.

вдзвдз АПИ има једноставан процес у три корака за вас:

  • Наведите УРЛ за сцрапинг
  • Наведите неке опције конфигурације
  • Узмите податке

Може да оструже веб страницу уместо вас, а затим да врати необрађене ХТМЛ податке у виду стринга или у ХТМЛ датотеци којој се може приступити преко везе, на који год начин вам одговара.

Коришћење АПИ-ја

У овом водичу ћете научити како да користите вдзвдз АПИ користећи НодеЈС – јавасцрипт окружење за извршавање. Инсталирајте НодеЈС на свој систем ако нисте пре него што наставите даље.

  • Покрените команду нпм инит -и у терминалу у тренутној фасцикли или директоријуму. За вас ће креирати датотеку пацкаге.јсон.
  • Унутар датотеке пацкаге.јсон промените вредност главног кључа у индек.мјс ако је подразумевано нешто друго. Алтернативно, такође можете додати тип кључа и поставити његову вредност једнаку модулу.
{
  “type”: “module”
}
  • Додајте зависност под називом акиос покретањем команде нпм и акиос у терминалу. Ова зависност нам помаже да правимо захтеве за преузимање до одређених крајњих тачака.
  • Ваш пацкаге.јсон би требао изгледати отприлике овако:
{
  "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"
  }
}
  • Увезите акиос унутар датотеке индек.мјс управо овако. Овде се користи кључна реч импорт јер је то ЕС модул. Да је то била цоммонЈС датотека, то би била кључна реч рекуире.
import axios from ‘axios’
  • Основни УРЛ за све наше захтеве за вдзвдз АПИ биће исти за сваку крајњу тачку. Дакле, можете га сачувати унутар константе.
const baseUrl="https://api.techblog.co.rs.com"
  • Наведите УРЛ са којег желите да скрежете и добијете податке.
let toScrapeURL = "https://developer.mozilla.org/en-US/"
  • Креирајте асинхрону функцију и иницијализујте аксиос унутар ње.
async function getData() {
    const res = await axios({})
    return res
}
  • У опцијама акиос конфигурације, требало би да наведете метод као пост, УРЛ заједно са крајњом тачком, заглавље познато као к-апи-кеи чија ће вредност бити АПИ кључ који обезбеђује вдзвдз и на крају, објекат података који ће бити послат на вдзвдз АПИ. Можете добити свој АПИ кључ тако што ћете отићи на дасх.вдзвдз.цом.
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
    }
})
  • Као што видите, објекат података има следећа својства:
    • урл: УРЛ веб-странице коју треба уклонити.
    • излаз: формат у коме су вам подаци представљени, било инлине као стринг или у ХТМЛ датотеци. Инлине стринг је подразумевана вредност.
    • уређај: тип уређаја на којем желите да се отвори веб страница. Прихвата три вредности, „десктоп“, „мобилни“ и „таблет“, при чему је „десктоп“ подразумевана вредност.
    • рендерЈС: логичка вредност која одређује да ли желите да прикажете јавасцрипт или не. Ова опција је корисна када се бавите рендеровањем на страни клијента.
  • Позовите асинхрону функцију и узмите податке. Можете користити ИИФЕ (Иммедиатели Инвокед Фунцтион Екпрессион).
(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'
}

Парсинг ХТМЛ

Да бисте рашчланили ХТМЛ, можете користити нпм пакет под називом ноде-хтмл-парсер и такође издвојити податке из ХТМЛ-а. На пример, ако желите да издвојите наслов са веб странице, можете да урадите:

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

Алтернативно, ако желите само метаподатке са веб локације, можете користити вдзвдз-ову крајњу тачку АПИ-ја за метаподатке. Не морате чак ни да анализирате ХТМЛ.

  Како користити функцију праћења у близини у Покемон Го-у

Предности коришћења вдзвдз АПИ-ја

У апликацијама са једном страницом садржај се често не приказује на серверу, већ га прегледач приказује користећи јавасцрипт. Дакле, ако састружете оригинални УРЛ без приказивања јавасцрипта потребног за приказивање садржаја, не добијате ништа осим елемента контејнера без садржаја у њему. Дозволите ми да вам покажем пример.

Ево демо веб странице направљене помоћу реацт-а и витејс-а. Очистите ову локацију користећи вдзвдз АПИ са опцијом рендерЈС постављеном на фалсе. Шта сте добили?

<body>
    <div id="root"></div>
<body>

Постоји само роот контејнер без садржаја. Овде ступа на снагу опција рендерЈС. Сада покушајте да изгребете исту локацију са опцијом рендерЈС постављеном на труе. Шта добијате?

<body>
    <div id="root">
        <div class="App">
            <div>
                <a href="https://vitejs.dev" target="_blank">
                    <img src="/vite.svg" class="logo" >
                </a>
                <a href="https://reactjs.org" target="_blank">
                    <img src="/assets/react.35ef61ed.svg" class="logo react" >
                </a>
            </div>
            <h1>Vite + React</h1>
            <div class="card">
                <button>count is 0</button>
                <p>Edit <code>src/App.jsx</code> and save to test HMR</p>
            </div>
            <p class="read-the-docs">Click on the Vite and React logos to learn more</p>
        </div>
    </div>
</body>

Још једна предност коришћења вдзвдз АПИ-ја је та што вам омогућава да користите ротирајући прокси тако да можете осигурати да веб локација неће блокирати ИП адресу. вдзвдз АПИ укључује функцију проксија у оквиру свог премиум плана.

Завршне речи

Коришћење АПИ-ја за гребање на вебу омогућава вам да се фокусирате само на копиране податке без превише техничких проблема. Осим тога, вдзвдз АПИ такође пружа функције као што су провера покварених веза, мета стругање, статистика учитавања веб локације, снимање екрана, статус сајта и још много тога. Све то под једним АПИ-јем. Погледајте званичну документацију вдзвдз АПИ-ја за више информација.

  Зашто мој рачунар прави смешне звукове?