Zephyrnet-logo

Webscraping met Node JS in 2023

Datum:


Wilt u gegevens van een webpagina extraheren?

Ga naar Nanonets website schraper, Voeg de URL toe en klik op "Schrapen" en download de webpagina-tekst direct als een bestand. Probeer het nu gratis.

De websiteschraper van Nanonets


Wat is webschrapen en de voordelen ervan?

Webschrapen wordt gebruikt om op grote schaal automatisch gegevens van webpagina's te schrapen. Webscraping wordt gedaan om gegevens in complexe HTML-structuren om te zetten in een gestructureerd formaat, zoals een spreadsheet of database, en wordt gebruikt voor verschillende doeleinden, zoals onderzoek, analyse en automatisering.

Hier zijn enkele redenen waarom mensen webschrapen gebruiken:

  • Efficiënt extraheren van webpaginagegevens voor geavanceerde analyse.
  • Houd de ontwikkelingen van de website van concurrenten in de gaten en let op veranderingen in hun productaanbod, tactieken of prijzen.
  • Schraap leads of e-mailgegevens van LinkedIn of een andere directory.
  • Automatiseer taken zoals het invoeren van gegevens, het invullen van formulieren en andere repetitieve taken, waardoor u tijd bespaart en de efficiëntie verbetert.

Waarom zou u Node.js gebruiken voor webschrapen?

Node.js wordt veel gebruikt omdat het een lichtgewicht, krachtig en efficiënt platform is. Hier zijn enkele redenen waarom node.js een uitstekende keuze is voor webschrapen:

  • Node.js kan meerdere webscraping-verzoeken parallel afhandelen.
  • Het heeft een grote community die ondersteuning biedt voor en zinvolle webscraping-bibliotheken creëert.
  • Node.js is platformonafhankelijk, waardoor het een veelzijdige keuze is voor webschrapprojecten
  • Node.js is gemakkelijk te leren, vooral als je al bekend bent met JavaScript
  • Node.js heeft ingebouwde ondersteuning voor HTTP-verzoeken, waardoor het eenvoudig is om HTML-pagina's van websites op te halen en te parseren
  • Node.js is zeer schaalbaar, wat belangrijk is voor webscraping bij het verwerken van een grote hoeveelheid gegevens

Wilt u gegevens van een webpagina extraheren?

Ga naar Nanonets website schraper, Voeg de URL toe en klik op "Schrapen" en download de webpagina-tekst direct als een bestand. Probeer het nu gratis.

De websiteschraper van Nanonets


Hoe webpagina's te schrapen met Node JS?

Stap 1 Uw omgeving instellen:

Je moet node.js installeren als je dat nog niet hebt gedaan. Je kunt het downloaden via de officiële website.

Stap 2 Noodzakelijke pakketten installeren voor webschrapen met Node.js:

Node.js heeft meerdere opties voor webscraping zoals Cheerio, Puppeteer en request. U kunt ze eenvoudig installeren met behulp van de volgende opdracht.

npm install cheerio
npm install puppeteer
npm install request

Stap 3 Uw projectdirectory instellen:

U moet een nieuwe map maken voor het nieuwe project. En navigeer vervolgens naar de opdrachtprompt om een ​​nieuw bestand te maken om uw NodeJS-webscraping-code op te slaan.

U kunt een nieuwe map en een nieuw bestand maken met behulp van de volgende opdracht:

mkdir my-web-scraper
cd my-web-scraper
touch scraper.js

Stap 4 HTTP-aanvragen doen met Node.js:

Om webpagina's te schrapen, moet u HTTP-verzoeken indienen. Nu heeft Node.js een ingebouwde http-module. Dit maakt het gemakkelijk om aanvragen te doen. U kunt ook axios of verzoeken gebruiken om een ​​verzoek in te dienen.

Hier is de code om http-verzoeken te doen met node.js

const http = require('http');
const url = 'http://example.com';
http.get(url, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(data);
});
});

Vervang http.//example.com door de url van uw keuze om de webpagina's te schrapen,

Stap 5 HTML schrapen met Node.js:

Zodra u de HTML-inhoud van een webpagina heeft, moet u deze ontleden om de gegevens te extraheren die u nodig hebt. Er zijn verschillende bibliotheken van derden beschikbaar voor het parseren van HTML in Node.js, zoals Cheerio en JSDOM.

Hier is een voorbeeld van een codefragment waarin Cheerio wordt gebruikt om HTML te ontleden en gegevens te extraheren:

const cheerio = require('cheerio');
const request = require('request');
const url = 'https://example.com';
request(url, (error, response, html) => {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(html);
const title = $('title').text();
const firstParagraph = $('p').first().text();
console.log(title);
console.log(firstParagraph);
}
});

Deze code gebruikt de aanvraagbibliotheek om de HTML-inhoud van de webpagina op url op te halen en gebruikt vervolgens Cheerio om de HTML te ontleden en de titel en de eerste alinea te extraheren.

Hoe om te gaan met javascript en dynamische inhoud met behulp van Node.js?

Veel moderne webpagina's gebruiken JavaScript om dynamische inhoud weer te geven, waardoor het moeilijk is om ze te schrapen. Om JavaScript-rendering aan te kunnen, kunt u headless-browsers zoals Puppeteer en Playwright gebruiken, waarmee u een browseromgeving kunt simuleren en dynamische inhoud kunt schrapen.

Hier is een voorbeeld van een codefragment waarbij Puppeteer wordt gebruikt om een ​​webpagina te schrapen die inhoud weergeeft met JavaScript:

const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const title = await page.$eval('title', el => el.textContent);
const firstParagraph = await page.$eval('p', el => el.textContent);
console.log(title);
console.log(firstParagraph);
await browser.close();
})();

Deze code gebruikt Puppeteer om een ​​headless browser te starten, naar de webpagina op url te navigeren en de titel en de eerste alinea uit te pakken. De methode page.$eval() selecteert en extraheert gegevens uit HTML-elementen.

Hier zijn enkele bibliotheken die u kunt gebruiken om eenvoudig webpagina's te schrapen met NodeJS:

vrolijkheid: is een snelle, flexibele en lichtgewicht implementatie van core jQuery ontworpen voor de serverzijde.

JSDOM: is een pure-JavaScript-implementatie van de DOM voor Node.js. Het biedt een manier om een ​​DOM-omgeving te creëren in Node.js en deze te manipuleren met een standaard API.

Poppenspeler: is een Node.js-bibliotheek die een hoogwaardige API biedt om headless Chrome of Chromium te besturen. Het kan worden gebruikt voor webschrapen, geautomatiseerd testen, crawlen en renderen.

Best practices voor webscraping met Node.js

Hier zijn enkele best practices die u kunt volgen bij het gebruik van Node.js voor webscraping:

  • Lees hun gebruiksvoorwaarden voordat u een website schrapt. Zorg ervoor dat de webpagina geen beperkingen heeft voor webschrapen of de frequentie van het schrapen van webpagina's.
  • Beperk het aantal HTTP-verzoeken om overbelasting van de website te voorkomen door de frequentie van verzoeken te controleren.
  • Stel de juiste headers in uw HTTP-verzoeken in om het gedrag van een gewone gebruiker na te bootsen.
  • Cache webpagina's en geëxtraheerde gegevens om de belasting van de website te verminderen.
  • Webscraping kan foutgevoelig zijn vanwege de complexiteit en variabiliteit van websites.
  • Bewaak en pas uw scraping-activiteit aan en pas uw snelheidsbeperking, headers en andere instellingen naar behoefte aan.

Wilt u gegevens van een webpagina extraheren?

Ga naar Nanonets website schraper, Voeg de URL toe en klik op "Schrapen" en download de webpagina-tekst direct als een bestand. Probeer het nu gratis.

De websiteschraper van Nanonets


spot_img

Laatste intelligentie

spot_img