Raschiatura web usando python

Raschiatura web usando python
Web rashing è un modo automatizzato per estrarre ed elaborare le informazioni dai siti Web Internet in quantità molto elevata. I dati sui siti Web di Internet non sono strutturati, che possono essere raccolti e strutturati tramite Web rasking. I motori di ricerca come Google, Bing, Yahoo hanno robot che raschiano i dati dai siti Web Internet e li indicizzano nelle loro pagine di ricerca. I dati possono anche essere estratti utilizzando le API, che è probabilmente uno dei modi migliori per estrarre i dati dal Web. Siti Web famosi come Facebook, Google, Amazon forniscono agli utenti API ben strutturate per interagire con i dati, ma non vedrai queste API ovunque.

Ad esempio, se si desidera ottenere aggiornamenti regolari sui tuoi prodotti preferiti per le offerte di sconto o si desidera automatizzare il processo di download di episodi della tua prima stagione preferita per uno, e il sito Web non ha alcuna API per questo, allora l'unica scelta Ti resta con il web rashing.Il raschiatura Web può essere illegale su alcuni siti Web, a seconda che un sito Web lo consenta o meno. I siti Web usano “robot.txt ”file per definire esplicitamente gli URL che non sono autorizzati a essere demoliti. È possibile verificare se se il sito Web lo consente o meno aggiungendo "robot.txt "con il nome di dominio del sito Web. Ad esempio, https: // www.Google.com/robot.TXT

In questo articolo, useremo Python per raschiare perché è molto facile da configurare e utilizzare. Ha molte biblioteche integrate e di terze parti che possono essere utilizzate per raschiare e organizzare i dati. Useremo due librerie Python "Urllib" per recuperare la pagina Web e "bellissimo" per analizzare la pagina Web per applicare le operazioni di programmazione.

Come funziona il rashing web?

Inviamo una richiesta alla pagina web, da dove si desidera raschiare i dati. Il sito Web risponderà alla richiesta con il contenuto HTML della pagina. Quindi, possiamo analizzare questa pagina web a Beautifulsoup per ulteriori elaborazioni. Per recuperare la pagina web, useremo la libreria "Urllib" in Python.

Urllib scaricherà il contenuto della pagina Web in HTML. Non possiamo applicare le operazioni di stringa a questa pagina Web HTML per l'estrazione dei contenuti e un'ulteriore elaborazione. Useremo una biblioteca Python "Beautifulsoup" che analizzerà il contenuto ed estrarre i dati interessanti.

Screping articoli da Linuxhint.com

Ora che abbiamo un'idea di come funziona il rashing web, facciamo un po 'di pratica. Cercheremo di raschiare i titoli degli articoli e i collegamenti da Linuxhint.com. Quindi apri https: // linuxhint.com/ nel tuo browser.

Ora premi CRTL+U per visualizzare il codice sorgente HTML della pagina Web.

Copia il codice sorgente e vai su https: // htmlformatter.com/ per prettificare il codice. Dopo aver delizioso il codice, è facile ispezionare il codice e trovare informazioni interessanti.

Ora, copia di nuovo il codice formattato e incollalo nel tuo editor di testo preferito come Atom, Sublime Text ecc. Ora raschiare le informazioni interessanti usando Python. Digitare quanto segue

// Installa una bellissima biblioteca di zuppe, arriva Urllib
preinstallato in Python
ubuntu@ubuntu: ~ $ sudo pip3 installa bs4
ubuntu@ubuntu: ~ $ python3
Python 3.7.3 (impostazione predefinita, 7 ottobre 2019, 12:56:13)
[GCC 8.3.0] su Linux

Digita "Guida", "Copyright", "Credit" o "Licenza" per ulteriori informazioni.

// Importa Urllib
>>> Importa Urllib.richiesta
// Importa bellissimo
>>> da BS4 Import BeautifulSoup
// Inserisci l'URL che vuoi prendere
>>> my_url = 'https: // linuxhint.com/'
// richiedi la pagina Web URL utilizzando il comando URLOPEN
>>> client = Urllib.richiesta.urlopen (my_url)
// Memorizza la pagina Web HTML nella variabile "HTML_PAGE"
>>> html_page = client.Leggere()
// Chiudi la connessione URL dopo aver recuperato la pagina Web
>>> Cliente.vicino()
// analizza la pagina web HTML a Beautifulsoup per raschiare
>>> page_soup = bellissimo (html_page, "html.parser ")

Ora diamo un'occhiata al codice sorgente HTML che abbiamo appena copiato e incollato per trovare cose di nostro interesse.

Puoi vedere che il primo articolo elencato su Linuxhint.com è chiamato "74 esempi di operatori bash", trova questo nel codice sorgente. È racchiuso tra i tag di intestazione e il suo codice lo è



class = "Categoria-1561"> Programmazione bash


title = "74 Esempi di operatori bash"> 74 operatori bash
Esempi


Lo stesso codice si ripete più e più volte con la modifica dei soli titoli e collegamenti degli articoli. Il prossimo articolo ha il seguente codice HTML



class = "Categoria-1343"> Ubuntu
vernice


title = "Come impostare la cache di vernice su Ubuntu 18.04 ">
Come impostare la cache di vernice su Ubuntu 18.04


Puoi vedere che tutti gli articoli tra cui questi due sono chiusi nello stesso "

"Tag e usa la stessa classe" Entry-Title ". Possiamo usare la funzione "Findall" nella bellissima biblioteca di zuppe per trovare ed elencare tutto "

"Avere la classe" Entry-Title ". Digita quanto segue nella tua console Python

// Questo comando troverà tutto "

"Elementi tag che hanno una classe denominata
"Ingresso". L'uscita verrà archiviata in un array.
>>> articoli = page_soup.findall ("H2" ,
"class": "entry-witle")
// Il numero di articoli trovati in prima pagina di Linuxhint.com
>>> len (articoli)
102
// per primo estratto "

"Elemento tag contenente il nome e il collegamento dell'articolo
>>> articoli [0]


title = "74 Esempi di operatori bash">
74 Esempi di operatori bash


// Secondo estratto "

"Elemento tag contenente il nome e il collegamento dell'articolo
>>> articoli [1]


title = "Come impostare la cache di vernice su Ubuntu 18.04 ">
Come impostare la cache di vernice su Ubuntu 18.04


// Visualizza solo il testo nei tag HTML utilizzando la funzione di testo
>>> articoli [1].testo
'Come impostare la cache di vernice su Ubuntu 18.04 '

Ora che abbiamo un elenco di tutti i 102 HTML "

"Elementi tag che contiene il link dell'articolo e il titolo dell'articolo. Possiamo estrarre entrambi i collegamenti e i titoli degli articoli. Per estrarre collegamenti da tag "", possiamo utilizzare il seguente codice

// Il seguente codice estraggerà il collegamento da primo

Elemento tag
>>> per il collegamento negli articoli [0].find_all ('a', href = true):
... stampa (link ['href'])
..
https: // linuxhint.com/bash_operator_examples/

Ora possiamo scrivere un ciclo per che itera attraverso ogni "

"Elemento tag nell'elenco" Articoli "ed estrarre il link e il titolo dell'articolo.

>>> per i nell'intervallo (0,10):
... Stampa (articoli [i].testo)
... per il collegamento negli articoli [i].find_all ('a', href = true):
... Stampa (link ['href']+"\ n")
..
74 Esempi di operatori bash
https: // linuxhint.com/bash_operator_examples/
Come impostare la cache di vernice su Ubuntu 18.04
https: // linuxhint.com/varnish_cache_ubuntu_1804/
Pinetime: uno smartwatch Friendly Linux
https: // linuxhint.com/pinetime_linux_smartwatch/
10 migliori laptop Linux economici per acquistare un budget
https: // linuxhint.com/best_cheap_linux_laptops/
HD Remastered Games per Linux che non ha mai avuto un rilascio di Linux ..
https: // linuxhint.com/hd_remastered_games_linux/
60 app per la registrazione dello schermo FPS per Linux
https: // linuxhint.com/60_fps_screen_recording_apps_linux/
74 Esempi di operatori bash
https: // linuxhint.com/bash_operator_examples/
... Snip ..

Allo stesso modo, salvi questi risultati in un file JSON o CSV.

Conclusione

Le tue attività quotidiane non sono solo la gestione dei file o l'esecuzione del comando di sistema. È inoltre possibile automatizzare le attività relative al Web come l'automazione del download di file o l'estrazione dei dati raschiando il Web in Python. Questo articolo è stato limitato solo alla semplice estrazione dei dati, ma puoi fare un'enorme automazione delle attività utilizzando "Urllib" e "Beautifulsoup".