Cum sa descarci automat link-urile din Google Search Console

7 min citire
How to Scrape Google Search Console Backlinks - Alex Bobes

În calitate de webmaster sau specialist SEO, efectuarea auditurilor backlink este o parte esențială a menținerii unui site web sănătos. Pentru a menține site-ul dvs. pe o poziție înaltă în clasament și pentru a preveni potențiale penalizări, este important să identificați și să respingeți backlink-urile toxice. Cu toate acestea, exportarea și corelarea manuală a tuturor datelor backlink din Google Search Console poate fi o sarcină descurajantă.

Pentru site-urile web mai mari, volumul mare de date poate face ca procesul de clic și exportare a datelor din GSC să fie o abordare consumatoare de timp și nepractică. Din fericire, există o soluție – web scraping. Utilizând un web scraper, puteți extrage și analiza în mod eficient datele backlink din GSC, permițându-vă să identificați și să respingeți rapid orice linkuri dăunătoare.

O modalitate eficientă de a extrage backlink-urile GSC este utilizarea Python, un limbaj de programare popular pentru dezvoltarea web și analiza datelor. Cu Python, puteți utiliza biblioteca BeautifulSoup pentru a analiza HTML și a extrage informații relevante din paginile web.

Google Search Console – Secțiunea Linkuri

Pentru a începe, va trebui să instalați mai multe pachete folosind pip: bs4, requests, re, pandas și csv. Aceste pachete vor oferi funcționalități esențiale pentru web scraping și manipularea datelor în Python.

pip install bs4 requests re pandas csv

1. Emulați o sesiune de utilizator

Pentru a începe să obțineți informații despre backlink-uri din Google Search Console, trebuie să simulați o sesiune normală de utilizator. Acest lucru se poate face deschizând secțiunea Linkuri din GSC printr-un browser web și selectând secțiunea Site-uri cu cele mai multe linkuri. Când ajungeți la această secțiune, trebuie să faceți clic dreapta și să alegeți „Inspectați” pentru a vizualiza codul sursă al paginii.

Apoi, navigați la fila „Rețea” din instrumentele de dezvoltare ale browserului și selectați prima adresă URL care apare ca tip de document. Aceasta ar trebui să fie o solicitare pe un URL care respectă acest format: https://search.google.com/search-console/links?resource_id=sc-domain%3A{YourDomainName}

Faceți clic pe URL și căutați în fila Anteturi secțiunea Anteturi solicitare, așa cum se arată în imaginea de mai jos:

Pentru a emula cu succes o sesiune normală de utilizator, va trebui să includem informațiile de solicitare din antet în solicitările noastre Python.

Este important de reținut că antetul solicitării conține și informații despre cookie-uri, care în biblioteca de solicitări Python vor fi stocate într-un dicționar numit cookies. Informațiile rămase din antet vor fi stocate într-un dicționar numit headers.

În esență, preluăm informațiile din antet și creăm două dicționare, așa cum se arată în codul de mai jos. Nu uitați să înlocuiți [your-info] cu datele dvs. reale.

from bs4 import BeautifulSoup
import requests
import re
import pandas as pd
import csv headers = {
„authority”: „search.google.com”,
„method”:„GET”,
«path»:'" [your-info]„',
”scheme„:”https„, «accept»:”text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
„accept-encoding”: „gzip, deflate, br”,
„accept-language”: „en-GB,en-US;q=0.9,en;q=0.8,ro;q=0.7”,
„cache-control”: „no-cache”,
„pragma”: „no-cache”,
„sec-ch-ua”: „navigate”,
„ sec-fetch-site„:”same-origin„,
”sec-fetch-user„:”?1„,
”upgrade-insecure-requests„:«1»,
”user-agent„:”Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36„,
”x-client-data„:”[your-info]„,
”sec-ch-ua„:'” Not A;Brand„;v=”99„, ”Chromium„;v=”100„, ”Google Chrome„;v=”100„',
”sec-ch-ua-mobile„: ”?0„,
”sec-fetch-dest„: «document»,
”sec-fetch-mode„: ”navigate"
}
cookies = {
„__Secure-1PAPISID”:„[informațiile-dumneavoastră]”,
„__Secure-1PSID”:„[informațiile-dumneavoastră]”,
„__Secure-3PAPISID”:„[informațiile-dumneavoastră]”,
" __Secure-3PSID„:”[informațiile-dumneavoastră]„,
”__Secure-3PSIDCC„:”[informațiile-dumneavoastră]„,
”1P_JAR„:”[informațiile-dumneavoastră]„,
«NID»:”[informațiile-dumneavoastră]" ,
„APISID”:„[informațiile dvs.]”,
«CONSENT»:„[informațiile dvs.]”,
„HSID”:„[informațiile-dumneavoastră]”,
„SAPISID”:„[informațiile-dumneavoastră]”,
«SID»:„[informațiile-dumneavoastră]”,
„SIDCC”: „[informațiile dvs.]”,
„SSID”: „[informațiile dvs.]”,
„_ga”: „[informațiile dvs.]”,
„OTZ”: „[informațiile dvs.]”,
„OGPC”:„[informațiile-dumneavoastră]”
}

Informațiile afișate în antetul cererii pot varia în funcție de cazul dumneavoastră individual. Nu vă faceți griji dacă există diferențe, atâta timp cât puteți genera cele două dicționare necesare.

După finalizarea acestui pas, executați celula care conține informațiile din antet și cookie-uri, deoarece este momentul să treceți la prima parte a scriptului propriu-zis: colectarea unei liste de domenii de referință care redirecționează către site-ul dvs. web.

Nu uitați să înlocuiți [domeniul-dumneavoastră] cu domeniul dumneavoastră real.

genericURL = „https://search.google.com/search-console/links/drilldown?resource_id=[domeniul-dumneavoastră]&type=EXTERNAL&target=&domain=”
req = requests.get(genericURL, headers=headers, cookies=cookies)
soup = BeautifulSoup(req.content, «html.parser»)

URL-ul furnizat mai sus este URL-ul pentru secțiunea Site-uri cu cele mai multe linkuri. Asigurați-vă că îl actualizați cu URL-ul corespunzător pentru site-ul dvs. web.

Pentru a verifica dacă ați ocolit cu succes autentificarea, puteți testa rulând următorul cod:

g_data = soup.find_all(„div”, {«class»: „OOHai”})
de exemplu în g_data:
print(example)
break

Codul de mai sus ar trebui să genereze un element div cu clasa „00Hai”. Dacă vedeți acest element, puteți continua.

2. Creați o listă de domenii de referință

Următorul pas în acest proces va implica utilizarea Python și Pandas pentru a genera o listă cu toate domeniile de referință care conțin linkuri către site-ul dvs. web.

g_data = soup.find_all(„div”, {«class»: „OOHai”}) dfdomains = pd.DataFrame()
finalList = []
for externalDomain in g_data:
myList = []
out = re.search(r'
(.*?(?=<))', str(externalDomain)) if out: myList.append(out.group(1)) finalList.append(myList) dfdomains = dfdomains.append(pd.DataFrame (finalList, columns=[„External Domains”])) domainsList = dfdomains[„External Domains”].to_list()

Codul furnizat mai sus inițializează un Pandas DataFrame gol, care va fi completat ulterior cu domenii externe. Scriptul funcționează prin scanarea întregului cod HTML și identificarea tuturor elementelor div cu clasa „OOHai”. Dacă se găsesc astfel de elemente, dfdomains DataFrame va fi completat cu numele domeniilor externe.

3. Extrageți informații despre backlink-uri pentru fiecare domeniu

În continuare, vom extrage informațiile despre backlink-uri pentru toate domeniile, inclusiv site-urile de top care conțin linkuri către pagina dvs. și paginile de top care conțin linkuri (ceea ce corespunde celui de-al treilea nivel de date din GSC, luând în considerare doar prima valoare).

def extractBacklinks():
for domain in domainsList[:]:
url = f„https://search.google.com/search-console/links/drilldown?resource_id=[your-domain]&type=EXTERNAL&target={domain}&domain=” request = requests.get(url, headers=headers, cookies=cookies)
soup = BeautifulSoup(request.content, «html.parser») for row in soup.find_all(„div”, {„class”: «OOHai»}):
output = row.text
stripped_output = output.replace(„”, „”) domain_stripped = str(domain.split(«https://»)[1].split(«/»)[0]) print („---------”)
print („Domeniu: ” + domain)
print („---------”) url_secondary = f„https://search.google.com/search-console/links/drilldown?resource_id=[domeniul-tău]&type=EXTERNAL&target={domeniu}&domain={stripped_output}”
request_secondary = requests.get(url_secondary, headers=headers, cookies=cookies)
soup_secondary = BeautifulSoup(request_secondary.content, «html.parser»)
for row in soup_secondary.find_all(„div”, {„class”: «OOHai»}):
output_last = row.text
stripped_output_last = output_last.replace(„”, „”)
break with open(f„{domain_stripped}.csv”, «a») as file:
writer = csv.writer(file, delimiter=«,», quotechar=«"», quoting=csv.QUOTE_MINIMAL)
writer = writer.writerow([domain, stripped_output, stripped_output_last])
file.close() extractBacklinks()
Lista finală de URL-uri

Pentru a rezolva problema caracterelor ciudate returnate de Beautiful Soup, folosim metoda Python .replace pentru a le elimina.

Odată ce extragerea URL-urilor este finalizată, toate URL-urile vor fi adăugate la un fișier .csv, care va fi localizat în același director ca și scriptul.

Cod complet

from bs4 import BeautifulSoup
import requests
import re
import pandas as pd
import csv headers = {
„authority”: „search.google.com”,
„method”:„GET”,
«path»:«„[your-info]”»,
„scheme”:„https”, «accept»:„text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9”,
„accept-encoding”: „gzip, deflate, br”,
„accept-language”: „en-GB,en-US;q=0.9,en;q=0.8,ro;q=0.7”,
„cache-control”: „no-cache”,
„pragma”: „no-cache”,
„sec-ch-ua”: „navigate”,
„sec-fetch-site”: „same-origin”,
„sec-fetch-user”: „?1”,
„upgrade-insecure-requests”: „1”,
„user-agent”: „Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36„,
”x-client-data„:”[your-info]„,
”sec-ch-ua„:'” Not A;Brand„;v=”99„, ”Chromium„;v=”100„, ”Google Chrome„;v=”100„',
”sec-ch-ua-mobile„: ”?0„,
”sec-fetch-dest„: «document»,
”sec-fetch-mode„: ”navigate"
}
cookies = {
„__Secure-1PAPISID”:„[informațiile dvs.]”,
„__Secure-1PSID”:„[informațiile dvs.]”,
„__Secure-3PAPISID”:„[informațiile dvs.]”,
„__Secure-3PSID”:„[informațiile-dumneavoastră]”,
„__Secure-3PSIDCC”:„[informațiile-dumneavoastră]”,
„1P_JAR”:„[informațiile-dumneavoastră]”,
„NID”:„[informațiile-dumneavoastră]”,
«APISID»:„[informațiile-dumneavoastră]”,
„CONSENT”: „[informațiile dvs.]”,
„HSID”: „[informațiile dvs.]”,
„SAPISID”: „[informațiile dvs.]”,
„SID”: „[informațiile dvs.]”,
„SIDCC”: „[informațiile dvs.]”,
„SSID”: „[informațiile dvs.]”,
„_ga”: „[informațiile dvs.]”,
„OTZ”: „[informațiile dvs.]”,
„OGPC”: „[informațiile dvs.]”
} genericURL = „https://search.google.com/search-console/links/drilldown?resource_id=[domeniul-dumneavoastră]&type=EXTERNAL&target=&domain=”
req = requests.get(genericURL, headers=headers, cookies=cookies)
soup = BeautifulSoup(req.content, ' html.parser') g_data = soup.find_all(„div”, {„class”: „OOHai”})
de exemplu în g_data:
print(example)
break g_data = soup.find_all(„div”, {«class»: „OOHai”}) dfdomains = pd.DataFrame()
finalList = []
pentru externalDomain în g_data:
myList = []
out = re.search(r'
(.*?(?=<))', str(externalDomain)) dacă out: myList.append(out.group(1)) finalList.append(myList) dfdomains = dfdomains.append(pd.DataFrame(finalList, columns=[„Domenii externe”])) domainsList = dfdomains[„Domenii externe”].to_list() def extractBacklinks(): for domain in domainsList[:]: url = f"https:// search.google.com/search-console/links/drilldown?resource_id=[your-domain]&type=EXTERNAL&target={domain}&domain=" request = requests.get(url, headers=headers, cookies=cookies) soup = BeautifulSoup(request.content, «html.parser») pentru rând în soup.find_all(„div”, {„class”: «OOHai»}): output = rând.text stripped_output = output.replace(„”, „”) domain_stripped = str(domain.split(«https://»)[1].split(«/»)[0]) print („---------”) print („Domeniu: ” + domain) print („---------”) url_secondary = f"https://search.google.com/search-console/links/drilldown?resource_id=[domeniul-tău]& amp;type=EXTERNAL&target={domain}&domain={stripped_output}" request_secondary = requests.get(url_secondary, headers=headers, cookies=cookies) soup_secondary = BeautifulSoup(request_secondary.content, «html.parser») for row in soup_secondary.find_all(„div”, {„class”: «OOHai»}): output_last = row.text stripped_output_last = output_last.replace(„”, „”) break with open(f„{domain_stripped}.csv”, «a») as file: writer = csv.writer(file, delimiter=«,», quotechar=«"», quoting=csv.QUOTE_MINIMAL) writer = writer.writerow([domain, stripped_output, stripped_output_last]) file.close() extractBacklinks()

Concluzia mea

Web scraping este o tehnică puternică care poate fi utilizată pentru a extrage date valoroase din Google Search Console. Folosind Python și biblioteci precum BeautifulSoup și Pandas, puteți colecta în mod eficient informații despre backlink-uri pentru site-ul dvs. web. Deși procesul poate părea complex la început, urmând pașii descriși mai sus, puteți simplifica procesul de audit al backlink-urilor și asigura sănătatea SEO-ului site-ului dvs. web. Utilizând această tehnică, puteți identifica cu ușurință backlink-urile toxice și puteți lua măsurile necesare pentru a le respinge, îmbunătățind astfel clasamentul și performanța generală a site-ului dvs. web.