Η JavaScript έχει γίνει πλέον μία από τις πιο προτιμώμενες γλώσσες για την απόξεση ιστού. Η ικανότητά του να εξάγει τα δεδομένα από το SPA (Εφαρμογή μίας σελίδας) ενισχύει τη δημοτικότητά του. Οι προγραμματιστές μπορούν εύκολα να αυτοματοποιήσουν τις εργασίες τους με τη βοήθεια βιβλιοθηκών όπως το Puppeteer και το Cheerio, οι οποίες είναι διαθέσιμες σε JavaScript.

Σε αυτό το ιστολόγιο, θα συζητήσουμε διάφορες βιβλιοθήκες web scraping που υπάρχουν στην JavaScript, τα πλεονεκτήματα και τα μειονεκτήματά τους, θα προσδιορίσουμε τις καλύτερες μεταξύ τους και στο τέλος, θα συζητήσουμε μερικές διαφορές μεταξύ Python και JavaScript στο όρους απόξεσης ιστού.

Web Scraping με Node JS

Πριν ξεκινήσουμε με το σεμινάριο, ας μάθουμε μερικά βασικά στοιχεία του web scraping.

Τι είναι το Web Scraping;

Το Web Scraping είναι η διαδικασία εξαγωγής δεδομένων από έναν ή δέσμη ιστότοπων με τη βοήθεια αιτημάτων HTTP στον διακομιστή του ιστότοπου για πρόσβαση στο μη επεξεργασμένο HTML μιας συγκεκριμένης ιστοσελίδας και στη συνέχεια μετατροπή του σε μια μορφή που θέλετε.

Υπάρχουν διάφορες χρήσεις του Web Scraping:

  • SEO — Το Web Scraping μπορεί να χρησιμοποιηθεί για την απόξεση των αποτελεσμάτων αναζήτησης Google, το οποίο μπορεί να χρησιμοποιηθεί για διάφορους στόχους όπως η παρακολούθηση SERP, η παρακολούθηση λέξεων-κλειδιών κ.λπ.
  • Παρακολούθηση ειδήσεων — Το Web Scraping μπορεί να επιτρέψει την πρόσβαση σε μεγάλο αριθμό άρθρων από διάφορους φορείς πολυμέσων, τα οποία μπορούν να χρησιμοποιηθούν για την παρακολούθηση των τρεχόντων ειδήσεων και συμβάντων.
  • Lead Generation — Το Web Scraping βοηθά στην εξαγωγή των στοιχείων επικοινωνίας ενός ατόμου που μπορεί να είναι ο πιθανός πελάτης σας.
  • Σύγκριση τιμών —Το Web Scraping μπορεί να χρησιμοποιηθεί για τη συλλογή τιμών προϊόντων από πολλούς διαδικτυακούς πωλητές για σύγκριση τιμών.

Οι καλύτερες βιβλιοθήκες Web Scraping στο Node JS

Οι καλύτερες βιβλιοθήκες απόξεσης ιστού που υπάρχουν στο Node JS είναι

  1. Unirest
  2. Αξιός
  3. SuperAgent
  4. Cheerio
  5. Κουκλοπαίκτης
  6. Συγγραφέας
  7. Εφιάλτης

Ας αρχίσουμε να συζητάμε αυτές τις διάφορες βιβλιοθήκες απόξεσης ιστού.

HTTP ΠΕΛΑΤΗΣ

Οι βιβλιοθήκες πελάτη HTTP χρησιμοποιούνται για την αλληλεπίδραση με διακομιστές ιστότοπων στέλνοντας αιτήματα και ανακτώντας την απάντηση. Στις επόμενες ενότητες, θα συζητήσουμε διάφορες βιβλιοθήκες που μπορούν να χρησιμοποιηθούν για την υποβολή αιτημάτων HTTP.

Unirest

Το Unirest είναι μια ελαφριά βιβλιοθήκη αιτημάτων HTTP που διατίθεται σε πολλές γλώσσες, κατασκευασμένη και συντηρούμενη από την Kong. Υποστηρίζει διάφορες μεθόδους HTTP όπως GET, POST, DELETE, HEAD, κ.λπ., οι οποίες μπορούν εύκολα να προστεθούν στις εφαρμογές σας, καθιστώντας το μια προτιμότερη επιλογή για περιπτώσεις αβίαστης χρήσης.

Το Unirest είναι μια από τις πιο δημοφιλείς βιβλιοθήκες JavaScript που μπορεί να χρησιμοποιηθεί για την εξαγωγή των πολύτιμων δεδομένων που είναι διαθέσιμα στο διαδίκτυο.

Ας πάρουμε ένα παράδειγμα για το πώς μπορούμε να το κάνουμε. Πριν ξεκινήσετε, υποθέτω ότι έχετε ήδη ρυθμίσει το έργο Node JS με έναν κατάλογο εργασίας.

Αρχικά, εγκαταστήστε το Unirest JS εκτελώντας την παρακάτω εντολή στο τερματικό του έργου σας.

npm i unirest

Τώρα, θα ζητήσουμε τη διεύθυνση URL-στόχου για την εξαγωγή των ακατέργαστων δεδομένων HTML.

const unirest = require(“unirest”);
const getData = async() => {
try{
 const response = await unirest.get("https://www.reddit.com/r/programming.json")
 console.log(response.body); // HTML
}
catch(e)
{
 console.log(e);
}
}
getData();

Έτσι μπορείτε να δημιουργήσετε μια βασική ξύστρα με το Unirest.

Πλεονεκτήματα:

  1. Υποστηρίζονται όλες οι μέθοδοι HTTP, συμπεριλαμβανομένων των GET, POST, DELETE κ.λπ.
  2. Είναι πολύ γρήγορο για εργασίες απόξεσης ιστού και μπορείνα χειριστεί μεγάλο φορτίοχωρίς πρόβλημα.
  3. Επιτρέπει τη μεταφορά αρχείων μέσω διακομιστή με πολύ πιο απλό τρόπο.

Αξιος

Το Axios είναι ένας πελάτης HTTP βασισμένος σε υποσχέσεις τόσο για το Node JS όσο και για προγράμματα περιήγησης. Το Axios χρησιμοποιείται ευρέως στην κοινότητα προγραμματιστών λόγω του ευρέος φάσματος μεθόδων, της απλότητας και της ενεργητικής συντήρησης. Υποστηρίζει επίσης διάφορες λειτουργίες όπως ακύρωση αιτημάτων, αυτόματους μετασχηματισμούς για δεδομένα JSON κ.λπ.

Μπορείτε να εγκαταστήσετε τη βιβλιοθήκη Axios εκτελώντας την παρακάτω εντολή στο τερματικό σας.

npm i axios

Η υποβολή αιτήματος HTTP με το Axios είναι αρκετά απλή.

const axios = require(“axios”);
const getData = async() => {
try{
 const response = await axios.get("https://books.toscrape.com/")
 console.log(response.data); // HTML
}
catch(e)
{
 console.log(e);
}
}
getData();

Πλεονεκτήματα:

  1. Μπορεί να υποκλέψει ένα αίτημα HTTP και να το τροποποιήσει.
  2. Έχει μεγάλη υποστήριξη από την κοινότητα και συντηρείται ενεργά από τους ιδρυτές του, καθιστώντας το μια αξιόπιστη επιλογή για την υποβολή αιτημάτων HTTP.
  3. Μπορεί να μεταμορφώσει τα δεδομένα αιτήματος και απόκρισης.

SuperAgent

Το SuperAgent είναι μια άλλη ελαφριά βιβλιοθήκη HTTP Client τόσο για το Node JS όσο και για το πρόγραμμα περιήγησης. Υποστηρίζει πολλές λειτουργίες πελάτη HTTP υψηλού επιπέδου. Διαθέτει παρόμοιο API με το Axios και υποστηρίζει σύνταξη υποσχέσεων και ασυγχρονισμού/αναμονής για το χειρισμό των απαντήσεων.

Μπορείτε να εγκαταστήσετε το SuperAgent εκτελώντας την ακόλουθη εντολή.

npm i superagent

Μπορείτε να κάνετε ένα αίτημα HTTP χρησιμοποιώντας async/wait with SuperAgent ως εξής:

const superagent = require(“superagent”);
const getData = async() => {
try{
 const response = await superagent.get("https://books.toscrape.com/")
 console.log(response.text); // HTML
}
catch(e)
{
 console.log(e);
}
}
getData();

Πλεονεκτήματα:

  1. Το SuperAgent μπορεί εύκολα να επεκταθεί μέσω διαφόρων προσθηκών.
  2. Λειτουργεί τόσο στο πρόγραμμα περιήγησης όσο και στον κόμβο.

Μειονεκτήματα:

  1. Λιγότερες δυνατότητες σε σύγκριση με άλλες βιβλιοθήκες πελατών HTTP όπως το Axios.
  2. Η τεκμηρίωση δεν παρέχεται λεπτομερώς.

Βιβλιοθήκες ανάλυσης Ιστού

Οι Βιβλιοθήκες ανάλυσης ιστού χρησιμοποιούνται για την εξαγωγή των απαιτούμενων δεδομένων από το ακατέργαστο έγγραφο HTML ή XML. Υπάρχουν διάφορες βιβλιοθήκες ανάλυσης ιστού στο JavaScript, συμπεριλαμβανομένων των Cheerio, JSONPath, html-parse-stringify2, κ.λπ. Στην επόμενη ενότητα, θα συζητήσουμε το Cheerio, τον πιο δημοφιλή ιστό ανάλυση βιβλιοθήκης σε JavaScript.

Cheerio

Το Cheerio είναι μια ελαφριά βιβλιοθήκη ανάλυσης ιστού που βασίζεται στο ισχυρό API του jQuery που μπορεί να χρησιμοποιηθεί για την ανάλυση και εξαγωγή δεδομένων από έγγραφα HTML και XML.

Το Cheerio είναι απίστευτα γρήγορο στην ανάλυση, το χειρισμό και την απόδοση HTML, καθώς λειτουργεί με ένα απλό συνεπές μοντέλο DOM. Δεν είναι πρόγραμμα περιήγησης ιστού, καθώς δεν μπορεί να παράγει οπτική απόδοση, να εφαρμόσει CSS και να εκτελέσει JavaScript. Για το scraping SPA (Single Page Applications) χρειαζόμαστε πλήρη εργαλεία αυτοματισμού του προγράμματος περιήγησης όπως Puppeteer, Playwright, κ.λπ., τα οποία θα συζητήσουμε σε λίγο.

Ας γράψουμε τον τίτλο του βιβλίου στην παρακάτω εικόνα.

Αρχικά, θα εγκαταστήσουμε τη βιβλιοθήκη Cheerio.

npm i cheerio

Στη συνέχεια, μπορούμε να εξαγάγουμε τον τίτλο εκτελώντας τον παρακάτω κώδικα.

const unirest = require(“unirest”);
const cheerio = require(“cheerio”);
const getData = async() => {
try{
 const response = await unirest.get("https://books.toscrape.com/catalogue/sharp-objects_997/index.html")
const $ = cheerio.load(response.body);
 console.log("Book Title: " + $("h1").text()); // "Book Title: Sharp Objects"
}
catch(e)
{
 console.log(e);
}
}
getData();

Η διαδικασία είναι αρκετά παρόμοια με αυτή που έχουμε κάνει στην ενότητα Unirest, αλλά με μια μικρή διαφορά. Στον παραπάνω κώδικα, φορτώνουμε το εξαγόμενο HTML σε μια σταθερά Cheerio και στη συνέχεια χρησιμοποιήσαμε τον Επιλογέα CSS του τίτλου για να εξαγάγουμε τα απαιτούμενα δεδομένα.

Πλεονεκτήματα:

  1. Ταχύτερη από οποιαδήποτε άλλη βιβλιοθήκη ανάλυσης ιστού.
  2. Το Cheerio έχει μια πολύ απλή σύνταξη και είναι παρόμοια με το jQuery που επιτρέπει στους προγραμματιστές να ξύνουν εύκολα ιστοσελίδες.
  3. Το Cheerio μπορεί να χρησιμοποιηθεί ή να ενσωματωθεί με διάφορες βιβλιοθήκες web scraping, όπως το Unirest και το Axios, το οποίο μπορεί να είναι ένας εξαιρετικός συνδυασμός για την απόξεση ενός ιστότοπου.

Μειονεκτήματα:

  1. Δεν μπορεί να εκτελέσει Javascript.

Ακέφαλα προγράμματα περιήγησης

Σήμερα, η ανάπτυξη ιστοτόπων έχει γίνει πιο προηγμένη και οι προγραμματιστές προτιμούν πιο δυναμικό περιεχόμενο στους ιστότοπούς τους, κάτι που είναι δυνατό λόγω JavaScript. Ωστόσο, αυτό το περιεχόμενο που αποδίδεται από JavaScript δεν είναι προσβάσιμο κατά την απόξεση ιστού με ένα απλό αίτημα HTTP GET.

Ο μόνος τρόπος με τον οποίο μπορείτε να ξύσετε το δυναμικό περιεχόμενο είναι χρησιμοποιώντας προγράμματα περιήγησης χωρίς κεφάλι. Ας συζητήσουμε τις βιβλιοθήκες που μπορούν να βοηθήσουν στην απόξεση αυτού του περιεχομένου.

Κουκλοπαίχτης

Το Puppeteer είναι μια βιβλιοθήκη Node JS που σχεδιάστηκε από την Google και παρέχει ένα API υψηλού επιπέδου που σας επιτρέπει να ελέγχετε τα προγράμματα περιήγησης Chrome ή Chromium.

Λειτουργίες που σχετίζονται με το Puppeteer JS:

  1. Το Puppeteer μπορεί να χρησιμοποιηθεί για καλύτερο έλεγχο του Chrome.
  2. Μπορεί να δημιουργήσει στιγμιότυπα οθόνης και PDF ιστοσελίδων.
  3. Μπορεί να χρησιμοποιηθεί για την απόξεση ιστοσελίδων που χρησιμοποιούν JavaScript για δυναμική φόρτωση του περιεχομένου.

Ας γράψουμε όλους τους τίτλους βιβλίων και τους συνδέσμους τους σε αυτήν την ιστοσελίδα.

Αλλά πρώτα, θα εγκαταστήσουμε τη βιβλιοθήκη κουκλοθέατρου.

npm i puppeteer

Τώρα, θα ετοιμάσουμε ένα σενάριο για να ξύσουμε τις απαιτούμενες πληροφορίες.

Τώρα, γράψτε τον παρακάτω κώδικα στο αρχείο js σας.

const browser = await puppeteer.launch({
 headless: false,
 });
 const page = await browser.newPage(); 
 await page.goto("https://books.toscrape.com/index.html" , {
 waitUntil: 'domcontentloaded'
 })

Εξήγηση βήμα προς βήμα:

  1. Αρχικά, ξεκινήσαμε το πρόγραμμα περιήγησης με τη λειτουργία χωρίς κεφαλή ρυθμισμένη σε ψευδή, η οποία μας επιτρέπει να δούμε ακριβώς τι συμβαίνει.
  2. Στη συνέχεια, δημιουργήσαμε μια νέα σελίδα στο πρόγραμμα περιήγησης χωρίς κεφαλές.
  3. Μετά από αυτό, πλοηγηθήκαμε στη διεύθυνση URL-στόχου μας και περιμέναμε μέχρι να φορτωθεί πλήρως το HTML.

Τώρα, θα αναλύσουμε το HTML.

let data = await page.evaluate(() => {
 return Array.from(document.querySelectorAll(“article h3”)).map((el) => {
 return {
 title: el.querySelector(“a”).getAttribute(“title”),
 link: el.querySelector(“a”).getAttribute(“href”),
 };
 });
 });

Το page.evalueate() θα εκτελέσει το javascript στο πλαίσιο της τρέχουσας σελίδας. Και μετά, το document.querySelectorAll() θα επιλέξει όλα τα στοιχεία που ταυτίζονται με τις ετικέτες του άρθρου h3. Το document.querySelector() είναι το ίδιο, αλλά επιλέγει ένα μόνο στοιχείο HTML.

Εξαιρετική! Τώρα, θα εκτυπώσουμε τα δεδομένα και θα κλείσουμε το πρόγραμμα περιήγησης.

console.log(data)
await browser.close();

Αυτό θα σας δώσει 20 τίτλους και συνδέσμους προς τα βιβλία που υπάρχουν στην ιστοσελίδα.

Πλεονεκτήματα:

  1. Μπορούμε να εκτελέσουμε διάφορες δραστηριότητες στην ιστοσελίδα, όπως κλικ στα κουμπιά και στους συνδέσμους, πλοήγηση μεταξύ των σελίδων, κύλιση στην ιστοσελίδα κ.λπ.
  2. Μπορεί να χρησιμοποιηθεί για λήψη στιγμιότυπων οθόνης ιστοσελίδων.
  3. Η συνάρτηση evaluate() στο κουκλοπαίκτη JS σας βοηθά να εκτελέσετε Javascript.
  4. Δεν χρειάζεστε εξωτερικό πρόγραμμα οδήγησης για να εκτελέσετε τις δοκιμές.

Μειονεκτήματα:

  1. Απαιτεί πολύ υψηλή χρήση CPU για να τρέξει.
  2. Προς το παρόν υποστηρίζει μόνο προγράμματα περιήγησης ιστού Chrome.

Θεατρικός συγγραφέας

Το Playwright είναι ένα δοκιμαστικό πλαίσιο αυτοματισμού για την αυτοματοποίηση προγραμμάτων περιήγησης ιστού όπως το Chrome, το Firefox και το Safari με ένα API παρόμοιο με το Puppeteer. Αναπτύχθηκε από την ίδια ομάδα που εργάστηκε στο Puppeteer. Όπως το Puppeteer, το Playwright μπορεί επίσης να τρέξει σε λειτουργίες χωρίς κεφαλή και χωρίς κεφαλή, καθιστώντας το κατάλληλο για ένα ευρύ φάσμα χρήσεων, από την αυτοματοποίηση εργασιών έως την απόξεση ιστού ή την ανίχνευση ιστού.

Σημαντικές διαφορές μεταξύ θεατρικού συγγραφέα και κουκλοθέατρου

  1. Το Playwright είναι συμβατό με Chrome, Firefox και Safari, ενώ το Puppeteer υποστηρίζει μόνο προγράμματα περιήγησης ιστού Chrome.
  2. Το Playwright παρέχει ένα ευρύ φάσμα επιλογών για τον έλεγχο του προγράμματος περιήγησης σε λειτουργία χωρίς κεφαλή.
  3. Το Puppeteer περιορίζεται μόνο σε Javascript, ενώ το Playwright υποστηρίζει διάφορες γλώσσες όπως C#, .NET, Java, Python κ.λπ.

Ας εγκαταστήσουμε το Playwright τώρα.

npm i playwright

Τώρα θα ετοιμάσουμε ένα βασικό σενάριο για να γράψουμε τις τιμές και τη διαθεσιμότητα των αποθεμάτων από τον ίδιο ιστότοπο που χρησιμοποιήσαμε στην ενότητα Puppeteer.

Η σύνταξη είναι αρκετά παρόμοια με το Puppeteer.

const browser = await playwright[‘chromium’].launch({ headless: false,});
 const context = await browser.newContext();
 const page = await context.newPage();
 await page.goto(“https://books.toscrape.com/index.html");

Το newContext() θα δημιουργήσει ένα νέο πλαίσιο προγράμματος περιήγησης.

Τώρα, θα ετοιμάσουμε τον αναλυτή μας.

  let articles =  await page.$$("article");

    let data = [];                 
    for(let article of articles)
    {
        data.push({
            price: await article.$eval("p.price_color", el => el.textContent),
            availability: await article.$eval("p.availability", el => el.textContent),
        });
    }  

Στη συνέχεια, θα κλείσουμε το πρόγραμμα περιήγησής μας.

await browser.close();

Πλεονεκτήματα:

  1. Υποστηρίζει πολλές γλώσσες όπως Python, Java, .Net και Javascript.
  2. Είναι ταχύτερη από οποιαδήποτε άλλη βιβλιοθήκη αυτοματισμού προγράμματος περιήγησης ιστού.
  3. Υποστηρίζει πολλά προγράμματα περιήγησης ιστού όπως Chrome, Firefox και Safari σε ένα μόνο API.
  4. Η τεκμηρίωσή του είναι καλογραμμένη, γεγονός που καθιστά εύκολο για τους προγραμματιστές να μάθουν και να το χρησιμοποιήσουν.

Nightmare JS

Το Nightmare είναι μια βιβλιοθήκη αυτοματισμού ιστού υψηλού επιπέδου που έχει σχεδιαστεί για να αυτοματοποιεί την περιήγηση, την απόξεση ιστού και διάφορες άλλες εργασίες. Χρησιμοποιεί Electron (παρόμοιο με το Phantom JS, αλλά διπλάσια ταχύτητα) που του παρέχει ένα πρόγραμμα περιήγησης χωρίς κεφάλι, καθιστώντας το αποτελεσματικό και εύκολο στη χρήση. Χρησιμοποιείται κυρίως για δοκιμές διεπαφής χρήστη και ανίχνευση.

Μπορεί να χρησιμοποιηθεί για τη μίμηση ενεργειών χρήστη, όπως η πλοήγηση σε έναν ιστότοπο, το κλικ σε ένα κουμπί ή ένας σύνδεσμος, η πληκτρολόγηση κ.λπ. με ένα API που παρέχει μια ομαλή εμπειρία για κάθε μπλοκ σεναρίου.

Εγκαταστήστε το Nightmare JS εκτελώντας την ακόλουθη εντολή.

npm i nightmare

Τώρα, θα αναζητήσουμε τα αποτελέσματα του "Serpdog" στο duckduckgo.com.

const Nightmare = require(‘nightmare’)
const nightmare = Nightmare()
 nightmare
.goto(‘https://duckduckgo.com')
.type(‘#search_form_input_homepage’, ‘Serpdog’)
.click(‘#search_button_homepage’)
.wait(‘.nrn-react-div’)
.evaluate(() =>
{
 return Array.from(document.querySelectorAll(‘.nrn-react-div’)).map((el) => {
 return {
 title: el.querySelector(“h2”).innerText.replace(“\n”,””),
 link: el.querySelector(“h2 a”).href
 }
})
})
 .end()
 .then((data) => {
 console.log(data)
 })
 .catch((error) => {
 console.error(‘Search failed:’, error)
 })

Στον παραπάνω κωδικό, πρώτα, δηλώσαμε μια παρουσία του Nightmare. Στη συνέχεια, πλοηγηθήκαμε στη σελίδα αναζήτησης Duckduckgo.

Στη συνέχεια, χρησιμοποιήσαμε τη μέθοδο type() για να πληκτρολογήσουμε Serpdog στο πεδίο αναζήτησης και υποβάλαμε τη φόρμα κάνοντας κλικ στο κουμπί αναζήτησης στην αρχική σελίδα χρησιμοποιώντας τη μέθοδο click(). Θα κάνουμε το scraper μας να περιμένει μέχρι να φορτωθούν τα αποτελέσματα αναζήτησης και μετά θα εξαγάγουμε τα αποτελέσματα αναζήτησης που υπάρχουν στην ιστοσελίδα με τη βοήθεια των επιλογέων CSS.

Πλεονεκτήματα:

  1. Είναι πιο γρήγορο από το Puppeteer.
  2. Απαιτούνται λιγότεροι πόροι για την εκτέλεση του προγράμματος.

Μειονεκτήματα:

  1. Δεν έχει καλή υποστήριξη της κοινότητας όπως το Puppeteer. Επίσης, υπάρχουν ορισμένα προβλήματα που δεν έχουν ανακαλυφθεί στο Electron, τα οποία μπορούν να επιτρέψουν σε έναν κακόβουλο ιστότοπο να εκτελέσει κώδικα στον υπολογιστή σας.

Άλλες βιβλιοθήκες

Σε αυτήν την ενότητα, θα συζητήσουμε ορισμένες εναλλακτικές λύσεις σε σχέση με τις βιβλιοθήκες που συζητήθηκαν προηγουμένως.

Λήψη κόμβου

Το Node Fetch ​​είναι μια ελαφριά βιβλιοθήκη που φέρνει το Fetch API στο Node JS, επιτρέποντας αποτελεσματικά αιτήματα HTTP στο περιβάλλον Node JS.

Δυνατότητες:

  1. Επιτρέπει τη χρήση υποσχέσεων και ασύγχρονων λειτουργιών.
  2. Υλοποιεί τη λειτουργία Fetch API στο Node JS.
  3. Απλό API που διατηρείται τακτικά και είναι εύκολο στη χρήση και κατανοητό.

Μπορείτε να εγκαταστήσετε το Node Fetch εκτελώντας την ακόλουθη εντολή.

npm i node-fetch

Δείτε πώς μπορείτε να χρησιμοποιήσετε το Node Fetch για απόξεση ιστού.

const fetch = require(“node-fetch”)
const getData = async() => {
 const response = await fetch(‘https://en.wikipedia.org/wiki/JavaScript');
 const body = await response.text();
 
 console.log(body);
}
getData();

Ωσμωση

Το Osmosis είναι μια βιβλιοθήκη απόξεσης ιστού που χρησιμοποιείται για την εξαγωγή εγγράφων HTML ή XML από την ιστοσελίδα.

Δυνατότητες:

  1. Δεν έχει μεγάλες εξαρτήσεις όπως το jQuery και το Cheerio.
  2. Έχει μια καθαρή διεπαφή που μοιάζει με υπόσχεση.
  3. Γρήγορη ανάλυση και μικρό αποτύπωμα μνήμης.

Πλεονεκτήματα:

  1. Υποστηρίζει επαναλήψεις και ανακατευθύνει όρια.
  2. Υποστηρίζει μεμονωμένους και πολλαπλούς διακομιστές μεσολάβησης.
  3. Υποστηρίζει υποβολή φόρμας, cookies περιόδου λειτουργίας κ.λπ.

Είναι το Node JS καλό για απόξεση ιστού;

Ναι, το Node JS είναι καλό για απόξεση ιστού. Διαθέτει διάφορες ισχυρές βιβλιοθήκες όπως η Axios και η Puppeteer, γεγονός που την καθιστά μια προτιμώμενη επιλογή για την εξαγωγή δεδομένων. Επίσης, η ευκολία εξαγωγής δεδομένων από ιστότοπους που χρησιμοποιούν JavaScript για τη φόρτωση δυναμικού περιεχομένου το έχει καταστήσει εξαιρετική επιλογή για εργασίες απόξεσης ιστού.

Στο τέλος, η μεγάλη υποστήριξη κοινότητας που είναι διαθέσιμη για το Node JS δεν θα σας απογοητεύσει ποτέ!

συμπέρασμα

Σε αυτό το σεμινάριο, μάθαμε για διάφορες βιβλιοθήκες στο Node JS που μπορούν να χρησιμοποιηθούν για απόξεση, μάθαμε επίσης τα πλεονεκτήματα και τα μειονεκτήματά τους.

Εάν πιστεύετε ότι μπορούμε να ολοκληρώσουμε τις εργασίες απόξεσης ιστού και να σας βοηθήσουμε να συλλέξετε δεδομένα, μη διστάσετε να επικοινωνήσετε μαζί μας.

Ελπίζω αυτό το σεμινάριο να σας έδωσε μια πλήρη επισκόπηση της απόξεσης ιστού με το Node JS. Παρακαλώ μη διστάσετε να μου στείλετε μήνυμα εάν έχασα κάτι. Ακολούθησέ με στο τουίτερ". Ευχαριστώ για την ανάγνωση!

Επιπρόσθετοι πόροι

Έχω ετοιμάσει μια πλήρη λίστα ιστολογίων για την απόξεση του Google στο Node JS, η οποία μπορεί να σας δώσει μια ιδέα για το πώς να συλλέγετε δεδομένα από προηγμένους ιστότοπους όπως η Google.

  1. Αποτελέσματα Google News Scraping Web Scraping
  2. Αποτελέσματα Google Scholar Scraping Web
  3. Κριτικές Χαρτών Google Web Scraping
  4. Αποτελέσματα αγορών Google Web Scraping