Geautomatiseerde blogger outreach met Scrapebox, Google Docs en SEOTools

8970273-the-engineering-scheme-of-automation-of-connection-of-the-compressor-equipmentOm snel en effectief outreach te doen naar potentiële linkpartners, leg ik mijn proces uit volgens dit voorbeeld.

Onze klant is een kledingwinkel voor kinderen en wenst zijn autoriteit in de zoekmachines te verhogen. De beste manier om snel relevante links te krijgen is bvb een linkruil te doen samen met andere kinderkledingwinkels. (Ga nu niet huilen over het woord “linkruilen” of abc-linkschema’s etc. We weten dat het nog steeds werkt). Daarvoor hebben we een lijst nodig van potentiële linkpartners die we een 1-malig linkruilvoorstel gaan doen. We gaan ze dus niet doodspammen, enkel benaderen met een businessvoorstel.

Stap 1: Get scrapebox.

Vaak gebruikt als blackhat-tool omwille van onder andere z’n mass blog commenter functionaliteit, gaan we deze tool nu gebruiken om de SERPs te scrapen op zoek naar de eerste kinderkledingwinkels. We zijn enkel geïnteresseerd in de eerste 20 à 30 resultaten. Na pagina 3 zijn het toch vaak waardeloze resultaten die Google toont. In de searchbox waar nu “SEO” staat typen we in kinderkleding site:.be en drukken op “start harvesting”. (Je wil eerst je resultaten beperken tot 20 à 30. Als je meer gaat scrapen is een proxy aan te raden.) De lijst van resultaten wordt alfabetisch gerangschikt, klik op Export URL List om de lijst in je klembord te bewaren en te plakken in Excel.

Je kan eventueel de stap met scrapebox overslaan (kost tenslotte toch 97$) en onmiddellijk op zoek gaan naar directories die lijsten hebben met websites van kinderkledingwinkels. De 2 bekendste directories zijn http://kinderkleding.start.be/ en http://kinderkleding.2link.be/ . Deze lijsten van de directories gaan we scrapen met Google Docs

 

Stap 2: Google Docs

google-docs-scraping

Als je directories wil scrapen, open je  Google Docs en plaats die 2 directory links (zie hierboven) in respectievelijk cel A1 en B1. Let wel dat veel van die directories beveiligd zijn tegen scrapers. Sommigen niet, dus die willen we hebben. In m’n voorbeeld hierboven is start.be beveiligd en 2link.be niet

In de rij eronder typ je =ImportXML(A1;”//a/@href”) . Deze functie kan je maximaal 50x uitvoeren per Google Docs. Dus we zitten gelimiteerd. Automagisch verschijnen al de links van onze gescrapete pagina. Handig. Je wil deze lijst wel behoorlijk uitmesten, want vaak zie je ongerelateerde links (combell, webdesignoffertes?). Die lijst copieer je dan naar Excel.

 

Stap 3: Niels Bosma’s SEO Tools voor Excel

Deze kerel maakt het je leven als SEO’er handig. Download zijn gratis tool en betaal hem een pint (zoals ik gedaan heb in de vorm van een donatie). Deze tool heeft een pak handige functies die je rechtstreeks vanuit Excel kan oproepen en je ondermeer toelaten om meta titles en server status op te halen alsook PageRank en Xpath functies uit te voeren. Yes.

We hebben nu ofwel de lijst uit Scrapebox, ofwel uit Google Docs en in Excel geplakt. Maak extra kolommen aan. Kolom A is je lijst met websites. Kolom B noem je server status en Kolom C noem je HTML title en D PageRank. Schrijf de formules zoals in het screenshot en trek door per 20 rijen.

nielsbosma-seo-tools

De reden waarom we server status willen ophalen is omdat we geen outreach willen doen naar websites die niet meer bestaan, of foutmeldingen hebben. In het screenshot hieronder is er een probleempje met rebells.nl Je krijgt dan ook een foutmelding die je wil wegklikken zodat de lijst verder wordt afgewerkt.

500-internal-server-error

De websites met foutmeldingen haal je eruit, alsook de websites met een PageRank van -1. Daar is vaak ook iets mis mee (placeholder pagina, of een parked domain, …). Met deze uitgekuiste lijst gaan we 2 dingen doen. E-mailadressen verzamelen of verder graven en de linkpagina’s van deze websites opsnorren.

Maak extra kolommen aan aldus en voeg volgende codes toe. Eenmaal ingevoerd, doortrekken per 20 rijen.

Kolom E (linkpagina) rij 2:

=IF(ISERROR(XPathOnUrl(A2;"//a[@href[contains(., 'inks')]]";"href"));XPathOnUrl(A2;"//a[@href[contains(., 'artners')]]";"href");XPathOnUrl(A2;"//a[@href[contains(., 'inks')]]";"href"))

Lees: als we een foutmelding tegenkomen als je op zoek bent naar links (a[@href]) waarin in de URL ‘inks’ staat, ga dan op zoek naar links waarin in de URL ‘artners’ staat en geef daarvan de URL weer anders geeft toch maar gewoon de URL waarin ‘inks’ staat. Hiermee willen we dus gewoon zoeken op “link”- of “partner”-pagina’s. Je wil in je Xpath vaak de eerste letter weglaten daar het hoofdlettergevoelig is, en ook meervouden vermijden. Zo zou onze scrapen de doraspellen.nl linkpagina niet gevonden hebben als ik enkel zocht op inks en niet op partners

 

Kolom F (contactpagina) rij 2:

=IF(ISBLANK(G3);"";XPathOnUrl(G3;"//a[@href[contains(., 'ontact')]]";"href"))

We zijn geïnteresseerd om de contactpagina URLs op te halen om die opnieuw te scrapen op zoek naar e-mailadressen.

 

Kolom G (e-mailadres) rij 2:

=IF(ISBLANK(A2);"";IF(ISERROR(XPathOnUrl(A2;"//a[@href[contains(., '@')]]";"href"));XPathOnUrl(A2;"//p[contains(., '@')]";"");XPathOnUrl(A2;"//a[@href[contains(., '@')]]";"href")))

Dit is de eerste poging om e-mailadressen die staan op de homepagina in te laden in Excel. Het spreekt voor zich dat de meeste adressen zich weleens op een contactpagina (of algemene voorwaarden pagina) kunnen bevinden. Vandaar kolom F.

Resultaat is het volgende:
email-extracting

Met een simpele Macro halen we de e-mailaddy’s er zo uit.
Duw hiervoor op ALT-F11, eenmaal in de editor Insert > Module. Copy-paste deze code en sluit (vraagt niet om te saven) de editor. Daarna roep je de functie aan volgens screenshot hieronder

Function ExtractEmailAddress(s As String) As String
    Dim AtSignLocation As Long
    Dim i As Long
    Dim TempStr As String
    Const CharList As String = "[A-Za-z0-9._-]"

    'Get location of the @
    AtSignLocation = InStr(s, "@")
    If AtSignLocation = 0 Then
        ExtractEmailAddress = "" 'not found
    Else
        TempStr = ""
        'Get 1st half of email address
        For i = AtSignLocation - 1 To 1 Step -1
            If Mid(s, i, 1) Like CharList Then
                TempStr = Mid(s, i, 1) & TempStr
            Else
                Exit For
            End If
        Next i
        If TempStr = "" Then Exit Function
        'get 2nd half
        TempStr = TempStr & "@"
        For i = AtSignLocation + 1 To Len(s)
            If Mid(s, i, 1) Like CharList Then
                TempStr = TempStr & Mid(s, i, 1)
            Else
                Exit For
            End If
        Next i
    End If
    'Remove trailing period if it exists
    If Right(TempStr, 1) = "." Then TempStr = _
       Left(TempStr, Len(TempStr) - 1)
    ExtractEmailAddress = TempStr
End Function

email-extracting-2

Et voila, we hebben een lijst van mooie, cleane en vooral gevalideerde e-mailadressen. (Je kan natuurlijk ook de uil uithangen en overal info@ voorzetten.) Die mensen ga ik niet spammen, maar gesegmenteerd gaan outreachen volgens van wat ik van hen of samen met hen wil bereiken. Spam is nooit cool, kids.

Conclusie

Dankzij gratis tools als Google Docs en het fantastische Niels Bosma’s SEO Tools bouw ik letterlijk lijsten van honderden e-mailaddressen in een mum van tijd. Ideaal voor klanten met creatieve linkbuildingideeën op zoek naar kritische outreachmassa.

One thought on “Geautomatiseerde blogger outreach met Scrapebox, Google Docs en SEOTools

  1. Hi, I wish for to subscribe for this blog to take most up-to-date updates, thus where can i do it please help out.|

Comments are closed.