Sari la conținut Treci la bara laterală Sari la subsol

Dacă ești un webmaster sau un specialist SEO, cel mai probabil trebuie să faci audituri de backlink în mod regulat. Există situații în care ești forțat să găsești backlink-uri toxice și să le dezavuezi. Cu toate acestea, este foarte greu să exportați și să corelați manual toate datele backlink-urilor din Google Search Console.

Dacă site-urile web cu care lucrați sunt substanțial mari, ar fi implicat multe clicuri și exporturi pentru a scoate aceste date din GSC, pur și simplu nu este posibil.

Google Search Console – Secțiunea Linkuri

Aici intervin Python, Beautiful Soup, Pandas - vă vor permite să răzuiți GSC și să extrageți automat datele de care aveți nevoie.

Să începem cu începutul:

  • Instalați următoarele pachete folosind pip: bs4, requests, re, pandas, csv

1. Emulați o sesiune de utilizator

Pentru a răzui informațiile de backlink din Google Search Console, trebuie să emulăm un utilizator normal. Facem acest lucru pur și simplu intrând în browserul dvs. la alegere, deschizând secțiunea Link-uri din GSC și selectând secțiunea Top linking site-uri. Odată ajuns aici, trebuie să inspectăm codul sursă al paginii făcând clic dreapta și apăsând Inspect.

În instrumentele de dezvoltare, mergem la fila de rețea și selectăm prima adresă URL care apare și este un tip de document, ar trebui să fie o solicitare pe o adresă URL de următorul tip: https://search.google.com/search-console/links?resource_id=sc-domain%3A{YourDomainName}

Faceți clic pe URL și uitați-vă la secțiunea Anteturi pentru secțiunea Anteturi de solicitare, conform imaginii de mai jos:

Pentru a emula o sesiune normală, va trebui să adăugăm la solicitările noastre Python informațiile de solicitare pe care le vedem în antetul solicitării.

Câteva note despre acest proces:

Veți observa că antetul solicitării dvs. va conține și informații despre cookie-uri. În ceea ce privește Python, pentru biblioteca de solicitări, aceste informații vor fi stocate într-un dicționar numit cookie-uri. Restul informațiilor vor fi stocate într-un dicționar numit antete.

De fapt, ceea ce facem este să luăm informațiile din antet și să le transformăm în două dicționare conform codului de mai jos.

* înlocuiți [informațiile dvs.] cu datele dvs. reale

din bs4 import BeautifulSoup import requests import re import pandas as pd import csv headers = { "authority": "search.google.com", "method":"GET", "path":'"[informațiile tale]"', "schema":"https", "accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*; q=0.8,application/signed-change;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, ca Gecko) Chrome/100.0.4896.127 Safari/537.36", "x-client-data":"[informațiile tale]", "sec-ch-ua":'" Nu este A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"', "sec-ch -ua-mobile": "?0", "sec-fetch-dest": "document", "sec-fetch-mode": "navigate" } cookie-uri = { "__Secure-1PAPISID":"[informațiile tale]", "__Secure-1PSID":"[informațiile tale]", "__Secure-3PAPISID":"[informațiile tale]", "__Secure-3PSID":"[informațiile tale]", "__Secure-3PSIDCC":"[informațiile tale]", "1P_JAR":"[informațiile tale]", "NID":"[informațiile tale]", "APISID":"[informațiile tale]", "CONSENT":"[informațiile tale]", "HSID":"[informațiile tale]", "SAPISID":"[informațiile tale]", "SID":"[informațiile tale]", "SIDCC":"[informațiile tale]", "SSID":"[informațiile tale]", "_ga":"[informațiile tale]", "OTZ":"[informațiile tale]", "OGPC":"[informațiile tale]"
}

Informațiile afișate în antetul solicitării dvs. pot fi diferite în cazul dvs., nu vă faceți griji cu privire la diferențe atâta timp cât puteți crea cele două dicționare.

Odată ce ați făcut acest lucru, executați celula cu informații despre antet și cookie-uri, deoarece este timpul să începeți să lucrați la prima parte a scriptului propriu-zis - colectând o listă de domenii de referință care se leagă înapoi la site-ul dvs.

* înlocuiți [your-domain] cu domeniul dvs. real

genericURL = "https://search.google.com/search-console/links/drilldown?resource_id=[domeniul-dvs.]&type=EXTERNAL&target=&domain=" req = requests.get(genericURL, headers=headers, cookies=cookies) supa = BeautifulSoup(req.content, 'html.parser')

Adresa URL de mai sus este de fapt adresa URL din Top site-uri de linkuri deci, asigurați-vă că o actualizați în consecință.

Puteți testa dacă ocoliți autentificarea rulând următorul cod:

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

Ieșirea codului de mai sus ar trebui să fie un div cu o clasă numită „00Hai”. Dacă vedeți ceva de genul, puteți continua.

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

Următorul pas în acest proces va fi să utilizați Python și Pandas pentru a returna o listă cu toate domeniile de referință care indică domeniul dvs.

g_data = soup.find_all(&quot;div&quot;, {&quot;class&quot;: &quot;OOHai&quot;}) dfdomains = pd.DataFrame() finalList = [] for externalDomain in g_data: myList = [] out = re.search(r&#039;<div class="OOHai">(.*?(?=<))', 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 de mai sus inițializează un cadru de date Pandas gol, care va fi populat cu domeniile externe. Domeniile sunt identificate prin rularea întregului HTML și prin identificarea tuturor div-urilor care se află în clasa „OOHai”. Dacă există astfel de informații, dfdomains dataFrame va fi populat cu numele domeniilor externe.

3. Extrageți informațiile de backlink pentru fiecare domeniu

În continuare vom extrage informațiile backlink pentru toate domeniile, Top site-uri care leagă la această pagină și, de asemenea, Top linking pages (practic al 3-lea nivel din GSC, doar prima valoare).

def extractBacklinks(): pentru domeniul din domainsList[:]: url = f"https://search.google.com/search-console/links/drilldown?resource_id=[domeniul-dvs.]&type=EXTERNAL&target={domain}&domain=" request = requests.get(url, headers=headers, cookies=cookies) supa = BeautifulSoup(request.content, 'html.parser') pentru rândul din 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: " + domeniu) print ("---------") url_secondary = f „https://search.google.com/search-console/links/drilldown?resource_id=[domeniul-dvs.]&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') pentru rândul din 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" ) ca fișier: 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 adrese URL

Deoarece Beautiful Soup returnează niște personaje ciudate, le dezbrăcăm folosind Python.a inlocui metodă.

Toate adresele URL sunt adăugate într-un fișier .csv (situat în același director în care este prezent scriptul)

1 cometariu

  • Avatar
    Jeff Klerk
    Postat 15 mai 2022 5:06 am 0Îi place

    Wow, multumesc mult! Am căutat pe tot internetul un tutorial, nimeni nu mi-a explicat cum se face, în afară de tine.

Adauga un Comentariu

> Newsletter <
Vă interesează Știrile tehnice și multe altele?

Abonati-va