Hányadik vagyok a Google-ben?

2013-04-24 09:09:01

Ha arra vagyunk kíváncsiak, hogy az általunk menedzselt vagy a konkurencia által üzemeltetett weboldal hányadik helyen szerepel bizonyos kulcsszavak tekintetében a Google keresőjében, induljunk ki először a kézi módszerből: rákeresünk. Megnyitjuk a legtöbbet használt böngészőnket, beírjuk a lokális google keresőbe (google.hu) a kifejezést, majd a találatokat átnézzük, lapozgatunk, esetleg számolgatunk. Ez mondjuk 1-2 kulcsszó és kis verseny esetében nem jelenthet nagy gondot, de mi történik, ha 10-20 kifejezésre kellene optimalizálnunk, folyamatosan figyelnünk?

Alapszabályok

Először is legyünk tisztában azzal, hogy ha a legtöbbet használt böngészőben nyitjuk meg a google.hu-t, akkor az általában emlékezni fog a korábbi keresésekre és találatokra, illetve arra is, hogy melyikekre kattintottunk. Ebből adódóan a gyakran klikkelt találatokat egyre fontosabbnak fogja találni és idővel előrébb helyezi [*], ami torzíthatja az adatokat. Erre megoldás az inkognitó mód (a legtöbb böngészőben van erre lehetőség), lényege, hogy teljesen nulláról indul, tehát egy időre elfelejt minden olyan korábbi beállítást és szokást, amit a napi használat során rögzített. Én Google Chrome-ot használok, abban a Ctrl+Shift+N gombok megnyomásával nyílik egy új inkognitó böngészőablak. Az itt indított keresések sokkal közelebb lesznek az átlagfelhasználó kereséseihez, mint a sajátunk.

A folyamat

Írjuk be a keresőszót vagy kifejezést, ami számunkra fontos lehet, én példának a "seo mágia" kifejezést választottam. A Chromeban van egy fejlesztői konzol (F12 billentyűre jön elő), amiben követhetők a böngésző által lekért url-ek. A "Network" fülön egy adott url-re jobb gombbal kattintva van olyan lehetőség, hogy "Copy as curl", ami annyit tesz, hogy a vágólapra másol egy komplett cUrl lekérést, fejlécekkel együtt. Valami ilyesmi lesz az eredmény (a jobb láthatóság miatt tördeltem a sorokat)

curl "https://www.google.hu/search?q=seo+m%C3%A1gia&spell=1&sa=X&ei=en53Uau7JoSItQbH5YCICA&ved=0CCwQBSgA&biw=1920&bih=955" \
-H ":host: www.google.hu" \
-H "accept-charset: ISO-8859-2,utf-8;q=0.7,*;q=0.3" \
-H "accept-encoding: gzip,deflate,sdch" \
-H "accept-language: hu-HU,hu;q=0.8,en-US;q=0.6,en;q=0.4" \
-H "user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31" \
-H ":path: /search?q=seo+m%C3%A1gia&spell=1&sa=X&ei=en53Uau7JoSItQbH5YCICA&ved=0CCwQBSgA&biw=1920&bih=955" \
-H "accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \
-H ":version: HTTP/1.1" \
-H "cache-control: max-age=0" \
-H "cookie: NID=67=xyxyxyxy; PREF=ID=xyxyx" \
-H ":scheme: https" \
-H ":method: GET"

Ez ebben a formában elég bő és vannak benne kifejezetten problémás sorok (NID és PREF-et tartalmazó sor), illetve az url-en is kell egy kicsit javítani, hogy a nem kívánt tényezők véletlenül se torzítsák az eredményt, arról nem is beszélve, hogy az eredmény tömörítve (gzip) érkezik a képernyőre, ami nem használható egyszerűen. Leegyszerűsítve és működőképesen jelenleg az alábbi cUrl parancssorral lehet megkapni az eredményt:

curl "https://www.google.hu/search?q=seo+mágia&start=0" \
-H "accept-charset: ISO-8859-2,utf-8;q=0.7,*;q=0.3" \
-H "accept-language: hu-HU,hu;q=0.8,en-US;q=0.6,en;q=0.4" \
-H "user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31" \
-H "accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \
-H "cache-control: max-age=0" \
-o output.html

Az eredmény még így sem könnyen használható, egy uglifyolt html-t kapunk, amiből még greppel/seddel/awkval sem egyszerű kinyerni a lényeget. Kis nyomozás után kiderül, hogy egy "search" id-jű div-ben vannak a valódi találatok (szponzorált linkek ugye nem számítanak), abban is van egy "rso" id-jű számozott lista, ami felsorolja őket. Kicsit mélyebbre mászva láthatjuk, hogy az összes találat hivatkozása egy "l" osztályú link (anchor, a), mondjuk jQuery-ben így lehet rájuk hivatkozni: $('a.l')  

Feldolgozás

A HTML fájlban a nekünk érdekes részt a DOM fa bejárásával találhatjuk meg, de erre már vannak eszközök, amik ezt biztosítják. Én a phpQuery-t választottam. Nem túl gyors, de képes egyszerűen elénk tárni az eredményt.

require('phpQuery.php');

$doc = phpQuery::newDocument(file_get_contents('output.html'));
$r = $doc['a.l'];
foreach ($r as $row) {
    printf("%s\n", pq($row)->attr('href'));
}

Ez a script felsorolja a találatok URL-jeit. Minden eszköz meg van arra, hogy ebből egy automatizált helyezés-ellenőrző legyen. Címszavakban: nyilván tartjuk a kifejezéseket (phrases.txt), nyilván tartjuk a domaineket (domains.txt), majd a kettőből egy mátrixot készítünk, amit már akár excelben is tudunk értelmezni, osztályozni, jelenteni.

Összelegózva

A csomag tartalma tehát:

  • check.sh - fő belépési pont, ez futtatja az összes kapcsolódó scriptet
  • parse.php - feldolgozza az egyes találati oldalakat és felsorolja az url-eket, amiket talált benne
  • format.php - az eredményt megformázza tsv formátumban a későbbi kezelhetőséghez
  • domains.txt - figyelendő domain-ek listája
  • phrases.txt - keresendő kifejezések listája
  • output.html - munkafájl, törlődik
  • temp-*.txt - munkafájlok, törlődnek

A fájlokat feltöltöttem githubra: https://github.com/deejayy/google-position-check

Eredmény

 

Pontszám: a kisebb jobb


Hozzászólás

Olcsó asztali órás rádió Androidból

2017-04-14 22:36:00
14

Konzol kimenet színezés

2017-01-06 13:08:37
0

Windows Event Log bedolgozás MSSQL adatbázisba [update 1]

2015-04-30 22:23:52
0

Az internetadó margójára

2014-11-01 10:39:57
0

A C4nn0N logó

2014-07-26 20:50:32
0

Virtualizálás Xen 4.4-gyel Ubuntu 14.04 alatt (64 bit)

2014-04-30 09:46:38
1

Xen és XenServer előadás

2014-04-17 06:11:00
0

HLDS-V8: Javascripttel programozható HLDS (CS 1.6)

2014-03-15 09:33:53
0

Node.js lazy hibakezelés

2013-08-19 22:08:35
0

Office 2013 animáció kikapcsolása

2013-07-02 08:31:35
1

Node.js ékezetes szövegbevitel konzolból / parancssorból

2013-06-27 07:41:54
0

Egy Counter Strike szerver üzemeltetési tapasztalatai

2013-05-17 14:21:14
7

Hogyan tegyünk grafikus felületet Ubuntu 10.04 Serverre?

2013-05-07 08:19:05
2

Torrent tracker node.js-ben 65 sorban

2013-04-28 10:23:25
0

Hányadik vagyok a Google-ben?

2013-04-24 09:09:01
0

Virtualizálás Xen 4.1-gyel Ubuntu 12.04 alatt (64 bit)

2013-01-22 08:58:15
2

Cloud Backup - Ments a felhőbe

2012-05-02 21:46:13
0

VIP plugin CS 1.6-hoz

2012-04-22 16:35:07
7

Ki az az admin?

2012-03-17 23:45:04
0

Csináltam egy blogot

2011-12-09 15:32:11
2

Az IT szabályozásokról

2009-09-01 17:30:58
0

Twitter - IRC gateway, avagy hogyan twitteljünk irc protokollon

2009-06-05 09:51:47
0

Hogyan lehet blokkolhatatlan hirdetéseket elhelyezni egy weblapon?

2008-10-28 10:56:30
11

Virtualizálás Xen-nel Ubuntu 8.04.1 Server-en

2008-09-04 18:46:02
0

Hogyan tegyünk grafikus felületet Ubuntu 8.04 Serverre?

2008-05-19 20:02:29
0

FAR Manager kedvcsináló I.

2008-05-02 11:41:02
0

Far Manager 1.80 - Open Source

2008-01-04 21:11:19
0

IBM DB2 9.5 Express install Ubuntu 7.10 Serverre

2007-12-19 10:35:03
0

IBM Websphere Application Server 6.1.0.3 Express és WAS Plugin install Ubuntu 7.10 Serverre

2007-12-19 10:33:27
0

Hogyan tegyünk grafikus felületet Ubuntu 7.10 Serverre?

2007-12-11 22:00:17
0

Warezolás, gazemberség?

2007-11-20 21:01:00
0

iSCSI Target és Initiator installálása Ubuntu 6.06.1 LTS-re

2007-10-13 18:23:40
0

Oracle 11g R1 install Ubuntu 6.06.1-re

2007-08-18 14:13:04
0

How to install Oracle 11g R1 on Ubuntu 6.06.1 LTS

2007-08-18 14:13:04
0

Hogyan tegyünk grafikus felületet Ubuntu 6.06.1 Serverre?

2007-08-18 14:09:55
0

Apache2 - WebDAV - Ubuntu 6.06.1 - Windows XP kliens

2007-08-13 19:48:34
0

CVS beállítása Ubuntu 6.06.1-re

2007-05-21 19:39:32
0

IBM DB2 8.2 Express install Debian 4.0-ra (64 bit)

2007-05-15 20:21:33
0

IBM DB2 8.2 Express install Ubuntu 6.06.1-re

2007-05-09 20:47:34
0

Lemez olvasási/írási sebesség tesztelés linux alatt

2007-05-05 20:14:30
0

Oracle Applications tippek 1.

2007-05-03 20:47:55
0

Windows Event Log bedolgozás MSSQL adatbázisba

2007-04-30 21:06:33
0

Oracle tippek 1.

2007-04-30 17:20:25
0

MySQL automatikus backup készítés jelszó felfedése nélkül

2007-04-18 23:42:51
0

LVM - logikai lemezkezelés (skicc)

2007-04-15 19:28:33
0

Counter Strike 1.6 telepítése Ubuntu 6.06.1-re

2007-04-08 12:15:32
0