Cum sa descarci automat link-urile din Google Search Console

Cuprins
Î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. 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: Codul de mai sus ar trebui să genereze un element div cu clasa „00Hai”. Dacă vedeți acest element, puteți continua. 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. 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. Î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). 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. 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. 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
2. Creați o listă de domenii de referință
g_data = soup.find_all(„div”, {«class»: „OOHai”}) dfdomains = pd.DataFrame()
finalList = []
for externalDomain in g_data:
myList = []
out = re.search(r'
3. Extrageți informații despre backlink-uri pentru fiecare domeniu
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()
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'
Concluzia mea