Cum să construiți un crawler personalizat folosind Colab și advertools
Publicat: 2022-05-25În acest videoclip, vom vorbi despre cum ne putem crea propriul crawler personalizat folosind Google Colab, Advertools și alte câteva biblioteci Python. Înainte să fii speriat sau să te rătăciți, nu vă faceți. Respiră adânc. O să fie bine. Nici măcar nu proclam că sunt programator, dar ceea ce mă pricep destul de bine este să copiez și să lipim. Știu că poți folosi acel buton Ctrl+C la fel de bine pe cât pot eu. Să aruncăm o privire la modul în care ne putem crea propriul crawler SEO personalizat și cum îl putem pune în funcțiune pentru a ne ajuta să rezolvăm unele probleme unice.
Resurse
- Obțineți acces la Colab aici.
- Aflați mai multe despre Advertools aici.
Transcriere video:
Să vedem cum putem construi un crawler personalizat folosind Google Colab, precum și Advertools, biblioteca Python.
Ce este un SEO Crawler (Spider)?
Crawlerele sunt instrumente care pot accesa cu crawlere paginile site-ului web la fel ca un motor de căutare și ne ajută să obținem informații SEO valoroase. Ne ajută să vedem site-ul web, în felul în care Google, Bing sau celelalte motoare de căutare ar vedea site-ul nostru. Există instrumente care fac asta. Există o serie de instrumente care fac acest lucru, cel mai popular este probabil Screaming Frog SEO Spider și este un instrument pe care îl iubim și îl folosim tot timpul, dar uneori avem nevoie de o soluție personalizată.
De ce ți-ai crea propriul crawler?
Cele mai multe crawler-uri „de la raft” fac lucruri uimitoare, dar uneori aveți o întrebare specifică la care trebuie să răspundeți și puteți crea un crawler personalizat pentru a controla toate ieșirile. Obțineți doar datele pe care le doriți sau de care aveți nevoie. În acest fel, nu trebuie să fii constrâns de configurarea unui instrument, dar poți rula o accesare rapidă a unui site web sau poți extrage doar o singură informație sau poți extrage o mulțime de informații și să le organizezi într-un mod diferit, folosind Colab și Piton.
Ce este Advertools?
Advertools este o bibliotecă Python care vă permite să faceți o mulțime de lucruri. Puteți accesa cu crawlere site-uri web, puteți genera cuvinte cheie pentru campaniile dvs. de marketing pentru motoarele de căutare, puteți crea anunțuri text, puteți analiza SERP-uri, puteți obține informații despre postările din rețelele sociale și puteți face multe altele. Este o bibliotecă extrem de flexibilă. Face o mulțime de lucruri interesante și este destul de simplu de utilizat.
Nu m-aș numi programator. Aș spune doar că sunt decent la copiere și lipire. Chiar dacă nu sunt un programator Python aprofundat, am reușit să obțin o mulțime de beneficii din utilizarea unui instrument precum Advertools.
Ce vom face
Aceasta este ceea ce vom face în acest videoclip.
- Creați un nou fișier Colab și instalați Advertools
- Creați un crawler personalizat folosind advertools
- Accesați cu crawlere și analizați site-ul web și datele
- Vizualizați unele dintre aceste rezultate folosind o altă bibliotecă Python numită Plotly
- Exportați datele
Pasul 1: Creați un fișier Colab și instalați Advertools
Google Colab este un instrument care vă va permite să faceți o serie de lucruri interesante. Vă permite să rulați cod în celule pentru a construi tabele, a vă crea propriile programe, a face lucruri personalizate, orice, de la învățare automată la SEO și multe altele. Dacă nu l-ați folosit niciodată până acum, este gratuit și vă permite să utilizați gratuit puterea de calcul a Google. Este foarte tare, așa că vă recomand cu căldură să verificați asta.
Dacă nu utilizați deja CoLab, există o mulțime de resurse excelente aici. Unul dintre lucrurile pe care trebuie să le faceți pentru a utiliza o bibliotecă care se află în afara Python, este instalarea naturală. Trebuie să instalați acel program. De cele mai multe ori utilizați o funcție numită PIP și apoi veți trage în noua bibliotecă. Este un proces destul de simplu de utilizat.
Unul dintre lucrurile pe care le fac toți acești tipi, care construiesc aceste programe, este că vă arată exact cum să le configurați în documentele lor. Așa că citiți întotdeauna aceste documente și vă va permite să înțelegeți: „Cum import aceste instrumente și fac ca aceste instrumente să funcționeze pentru mine?”
Pentru a instala Advertools, vom folosi această linie de cod chiar aici:
!pip install advertools
După ce ați introdus codul aici în blocul de celule din CoLab, mergeți mai departe și apăsați butonul de redare. Va executa acest bloc de cod. Ar trebui să vedeți ceva de genul acesta, unde se instalează codul și întregul pachet aici, astfel încât să putem folosi acum această bibliotecă pentru a construi crawler-ul nostru. Odată ce vezi bifa verde, știi că s-a terminat.
Pasul 2: Creați un crawler personalizat folosind Advertools
În continuare, vom dori să executăm o nouă linie de cod.
import advertools as adv
from advertools import crawl
import pandas as pd
Puteți continua și apăsați butonul de cod aici și îl va popula pe acesta nou. Vom importa câteva părți specifice ale bibliotecii Advertools. Importăm advertools, importăm metoda de accesare cu crawlere. De asemenea, importăm ceva numit panda. Pentru cei dintre voi care nu sunt familiarizați cu Python, panda ne permite să lucrăm cu datele noastre în cadrul cadrelor de date, practic creând tabele în Python.
După ce ați configurat toate acestea, mergeți mai departe și rulați din nou codul. Aceasta va importa toate aceste informații. Dacă construim un crawler, veți observa aici că se vorbește despre cum putem face acest lucru, cum putem importa aceste crawleri. Există câteva abordări; puteți importa Advertools așa cum am făcut noi și puteți rula această linie de comandă, care va face ceea ce facem noi.
Îmi place să fac Colab puțin mai ușor de utilizat în cazul în care cineva din echipa mea dorește să-l folosească și el. Vom face ceva puțin diferit de ceea ce arată ei aici. Dar dacă urmați această abordare, veți înțelege corect și va funcționa și el.
site = "https://simplifiedsearch.net/" #@param {type:"string"}
crawl(site, 'simp.jl' , follow_links= True )
crawl_df = pd.read_json( 'simp.jl' , lines= True )
crawl_df.head()
Ceea ce vom face este această linie de cod. Primul lucru pe care îl facem este să definim o variabilă, iar variabila va fi site-ul web pe care vrem să îl accesăm cu crawlere. Folosind acest șir de tip param, îmi oferă o casetă aici, care apoi îmi permite să introduc aici, ce site vreau să accesez cu crawlere. Pot să-mi pun site-ul aici. Pot pune orice site aici și va seta acea variabilă pentru mine. În acest fel, nu trebuie să scriu aici. Pot să-l introduc într-un formular și cineva care nu se simte la fel de confortabil să facă clic în interiorul casetei de celule ar putea să meargă aici și să tasta o parte în afară.
În acest caz, vom folosi site-ul nostru de căutare simplificată, doar pentru că l-am folosi tot timpul. Vom merge mai departe și îl vom lipi aici. Chiar mai jos, respectăm exact aceleași reguli pe care le-au stabilit aici. Folosim Advertools.crawl și apoi folosim site-ul ca variabilă. Avem un fișier de ieșire. Apoi vrem ca acesta să urmeze linkurile din site.
Facem și următorul pas, în care setăm cadrul de date de accesare cu crawlere și îi spunem să deschidă fișierul nostru de ieșire, deoarece va fi afișat în JSON. Urșii panda vor citi JSON și vor crea un cadru de date pentru noi. În cele din urmă, ne spun doar să arătăm șeful acestui cadru de date, pentru a ne asigura că totul funcționează conform intenției. Odată ce urmăm acest pas și rulăm această celulă, vom accesa cu crawlere site-ul web și va face un dump de date mai jos și vom putea vedea toate funcțiile diferite din acest crawler.
Voi merge înainte și voi conduce această celulă. Poate dura câteva minute doar pentru că rulează o accesare cu crawlere a întregului site web. După ce terminăm, vom vorbi despre cum putem folosi datele de accesare cu crawlere pentru a extrage anumite informații.
Pasul 3: Accesați cu crawlere și analizați site-ul web și datele
Acum site-ul s-a accesat cu crawlere și puteți vedea că am o listă de adrese URL, titluri, meta descrieri, punct de vedere, set de caractere, H1, H2 și H3. Toate aceste informații sunt introduse în acest cadru. Dacă vrei să-l vezi puțin mai curat, poți apăsa acest buton magic chiar aici și Google va transfera aceste date aici într-un cadru de date puțin mai ușor cu care să lucrezi. Am un număr total de coloane chiar aici de 266. Sunt o mulțime de coloane cu care pot lucra.
S-ar putea să vă întrebați ce este în toate aceste coloane. Ne putem întoarce aici la instrumentele de publicitate și puteți vedea toate elementele diferite. Există destul de multe date de export pe care le putem analiza și obține o mulțime de informații interesante.
Dacă vrem să vedem o listă cu toate coloanele diferite pe care le avem disponibile, putem rula acest cod:

columns = list (crawl_df)
columns
Trebuie să luăm mai întâi coloanele și să creăm o listă din ele. Vom folosi lista de coduri și apoi vom pune paranteze, iar în interiorul lor crawl_DF, care este numele cadrului nostru de date, și vom apela noile coloane din listă. Aici avem coloane și rulăm acea celulă și puteți vedea toate aceste diferite coloane posibile. Este destul de puțină informație, după cum puteți vedea, caută o mulțime de informații.
Ce se întâmplă dacă vrei să vezi doar o parte din această informație? Ce se întâmplă dacă ați dori doar să obțineți toate titlurile sau toate meta descrierile sau unele dintre informațiile etichetei H sau poate ați fi vrut să vedeți toate paginile și tipul de marcaj schema.org pe care le-ați putea avea pe ele. Aici este util să aveți ceva de genul Advertools.
Să presupunem că am vrut să ne uităm la tipurile JSON-LD din paginile noastre.
json_df = crawl_df[[ 'url' , 'jsonld_@type' ]]
json_df
Putem începe cu un cod nou. Să mergem mai departe și să creăm un nou cadru de date numit JSON-DF. Vrem să obținem câteva informații din cadrul nostru original de date. Primul lucru pe care o să vrem să-l facem, lasă-mă să cobor puțin aici, ca să fie mai ușor să se târască tuturor, _DF. Vom folosi un parantez și un alt parantez.
Primul lucru pe care vrem să îl extragem este adresa URL. Știm că URL-ul este important pentru că trebuie să cunoaștem toate paginile din site-ul nostru, toate URL-urile. Următorul lucru pe care vrem să-l facem este să găsim tipul JSON. Ne putem întoarce la această listă și putem merge la tipul JSON, îl copiam și să spunem, vreau și eu să știu tipul JSON. Voi merge mai departe și voi păstra acest lucru consecvent, astfel vom urma cele mai bune practici. Ce facem în acest mic rând aici? Am spus „creați un nou cadru de date” și folosim datele din baza noastră de date inițială, din cadrul nostru de date original și trageți înapoi numai URL-urile și tipurile JSON-LD.
Dacă rulez asta, va crea un nou cadru de date doar cu acele informații. Pentru a vedea aceste date, pot să merg înainte, să pun JSON_DF, să fac o nouă celulă și să apăs pe Enter. Îmi oferă o listă cu toate paginile mele și tipul de marcaj asociat cu acele pagini specifice. Acest lucru poate fi foarte util dacă doriți să căutați rapid și să găsiți toate codurile JSON de pe site-ul dvs., ce tipuri aveți și ce markup aveți.
În plus, aveți unele pagini care nu au marcaj? Le puteți identifica rapid. Avem aceste date noi în care avem toate URL-urile noastre și avem toate tipurile noastre JSON-LD despre care știm că există pe pagina respectivă.
Pasul 4: Vizualizați rezultatele
Să presupunem că vrem să creăm un raport rapid sau un grafic pentru a arăta, fie unui client, fie altcuiva, sau cantitatea de informații și date pe care le-am adăugat pe acest site pentru aceștia și diferitele tipuri de acestea.
Primul lucru pe care trebuie să-l fac este să număr toate tipurile diferite de markup care au fost adăugate și apoi îl pot vizualiza. Să începem prin a număra acest lucru și a crea un nou cadru de date. Am creat deja acest cod și vă voi ghida prin el:
json_counts = json_df[ 'jsonld_@type' ].value_counts()
json_counts = json_counts.reset_index()
json_counts
Se numește JSON counts. Acesta este un nou cadru de date. Preluăm datele din coloana JSON-LD chiar aici. Îl punem să numere valorile unice care sunt în această coloană. Când rulez acest cod și apoi îi spun să-l scoată, veți vedea că avem toate acele informații socotite.
Ceea ce face este că îmi dă această eroare pentru că găsește niște zerouri sau niște NAS în listă. Este în regulă pentru că veți vedea într-o secundă că am primit aceste informații aici. Iată toate tipurile diferite de marcare și totul a fost stabilit pentru noi.
De asemenea, observați că nu prea arată ca un cadru de date așa cum este aici. Trebuie să reindexăm acest cadru de date, sau această variabilă, într-un cadru de date pentru ca acesta să funcționeze corect. Vom merge mai departe și vom oferi cadrul de date și vom rula acest cod:
json_counts = json_counts.reset_index()
Când rulăm acest lucru, veți vedea că avem un cadru de date. Avem indicele, care este termenul. Apoi avem tipul JSON-LD și numărul acestuia. Încă nu avem un grafic. Mai avem încă un alt cadru de date. Ce trebuie să facem pentru a transforma acest cadru de date într-o vizualizare sau un grafic? Vom folosi ceva numit Plotly.
Plotly este o altă bibliotecă, foarte asemănătoare cu Advertools, pe care o putem folosi pentru a crea vizualizări și, în special, vom folosi Plotly express. Primul lucru pe care trebuie să-l facem este să instalăm Plotly, mergem mai departe și facem PIPinstallPlotly, voi rula această celulă. A fost deja instalat în această foaie de lucru, dar este în regulă. După cum puteți vedea, ne va spune că este deja instalat, deja mulțumit. Suntem gata de plecare.
Luați acel cod pe care tocmai l-am copiat de aici și inserați-l înapoi în crawler-ul nostru. Nu avem nevoie de acesta din mijloc, deoarece acestea sunt date pe care nu le folosim. Ne folosim propriile date. Trebuie să importam Plotly Express ca PX și trebuie să conectăm noua noastră bază de date aici pentru a obține informațiile potrivite în diagrama noastră.
! pip install plotly
import plotly.express as px
fig = px.bar(json_counts, x='index', y='jsonld_@type')
fig.show()
Cadrul nostru de date a fost numit JSON counts. Pe X-ul nostru vom folosi index, iar pe Y vom folosi tipul JSON. De ce le-am ales pe acestea? Indexul este locul unde sunt cuvintele. Vrem să le avem pe X, iar apoi numărul este pe JSON-LD @type, iar acesta va fi Y-ul nostru, care ne va spune câte sunt în fiecare dintre acele coloane. Vom merge înainte și vom pune asta aici. Destul de simplu. Și apoi fig.show va arăta acel grafic. Deci, acum, avem toate tipurile noastre diferite aici, și aici, avem cantitățile diferite ale fiecărui tip într-un grafic frumos.
Dacă doriți să partajați acest lucru, îl puteți descărca ca PNG, iar Plotly îl va descărca acum pe computer. Poți să iei asta și să spui: „Am pus atât de mult mai mult pe aceste multe pagini”. O modalitate destul de grozavă de a o vizualiza rapid.
Pasul 5: Exportați datele
Totuși, ce se întâmplă dacă vrem să descarcăm toate aceste date și să lucrăm cu ele, poate în foi Google sau altceva? Ei bine, puteți face și asta pentru a face asta. Trebuie doar să folosim încă o linie de cod și ar trebui să fim gata. Deci, să presupunem că vom descărca acest tabel aici cu toate paginile site-ului nostru web și tipul JSON-LD. Putem merge mai departe la această celulă sau la oricine doriți și apoi vom crea o nouă linie de cod.
Trebuie să folosim ceva de la Google Colab numit fișiere de import. Acesta este primul lucru pe care îl vom face. În continuare, vom găsi acest cadru de date, care este JSON-DF. Vom adăuga acest lucru mai jos și vom spune .2_CSV, apoi îi vom da un nume. Putem numi acest lucru JSON_DF.CSV. După ce ați introdus acest cod, ați creat fișierul CSV. Dacă mă uit aici în folderul meu, vei vedea fișierul chiar aici.
De aici, aș putea să-l descarc, sau aș putea pune aici o linie de cod care ne ajută să-l descarcăm și mai repede. Aș putea spune files.download, apoi merg mai departe și apelez acest fișier, pe care tocmai l-am creat, și i-am cerut Colab doar să-l descarce direct pentru mine. Când rulez această celulă, va descărca acel fișier și aici îl am. Pot să merg mai departe, să dau clic pe Deschide, iar acum am acest fișier CSV pe care pot face orice vreau cu orice fel de instrument pentru foi de calcul pe care îl am. De asemenea, le pot vedea pe cele cărora, probabil, lipsesc unele markupuri.
Iată-l. Am mers înainte și am creat propriul nostru crawler personalizat. Am extras câteva date personalizate. Am vizualizat acele date și le-am descărcat pentru a le folosi în alte programe. Am făcut toate astea, iar eu nu sunt programator de computere, nici măcar nu încerc să mă prefac că sunt unul. După cum am spus mai devreme, mă pricep doar la copierea și lipirea. Vă puteți da seama și voi de aceste lucruri.
Când aveți întrebări, există întotdeauna soluții interesante. Dacă sunteți dispus să încercați ceva nou și diferit, vă recomand să vă jucați în Colab. Există o mulțime de resurse grozave acolo. Există o mulțime de oameni care sunt mult mai deștepți decât mine, fac lucruri mult mai uimitoare de la care am învățat o grămadă și m-au ajutat în jocul meu de marketing, cercetare, crawling și multe altele.
Dacă aveți întrebări despre ceea ce am făcut astăzi, vă rugăm să comentați mai jos. De asemenea, voi oferi acces la acest fișier CoLab specific și chiar voi împărtăși pas cu pas codul pe care l-am folosit pe parcurs. Mulțumesc mult pentru vizionare. Nu uitați să vă abonați și până data viitoare, marketing fericit.