Парсинг Google

Хочу відновити цю тему, так як на старому блозі вона ісчесла з дампа в нібитіе. Спосіб досить продуктивний, з високим ККД і дозволяє аналізувати довільні від 50-100к лінків на хв. Мінус його тільки в тому, що парсити ми будемо не Google.com, а =>blogsearch.google.com/changes.xml? Last = 120 отже не можемо ставити парметри пошуку, крім однієї змінної =>last = 120.

За цим посиланням, гугл віддає в режимі реалтайм список сайтів, які його пінгануло на предмет появи або поновлення нового контенту. Контент нам не Спарс таким методом, бо під кожну пагу потрібно писати свої регулярки. Другий і самий ключовий момент цієї замітки, знаючи параметри урлов або дир різних движків, ми можемо зібрати собі базу свіжих і не засвічених урлов для хрумака та інших сабміттеров.

Далі кілька показових шматків коду для парсинга, які ви вже заточите під свої потреби.

Приклад # 1

Результатом буде висновок урлов у форматі http://site.com і http://site.com/dir/page.html і збереження у файл links.txt.

1
2
3
4
5
6
7
$ url = 'http://blogsearch.google.com/changes.xml?last=120';
$ M = file_get_contents ($ url);
preg_match_all ('/ url ="(.*?)"/',$ m, $ match);
print implode ("
", $ match [1]);
$ File = fopen ("links.txt", "a +");fwrite ($ file, implode ("rn", $ match [1 ]));fclose ($ file);

Приклад # 2

Варіант 1 + смикаємо тільки по заданому ключевиком, який береться з парметр урла.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ keyword = "forum";// ключевік
$ Ch = curl_init ();curl_setopt ($ ch, CURLOPT_URL," http://blogsearch.google.com/changes.xml?last=120 ");
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);
$ Get = curl_exec ($ ch);
preg_match_all ('/ url =" S + "/ i', $ get, $ urls);
echo "Results for $ keyword:
";
foreach ($ urls [0] as $ blog) {
$ Blog = preg_replace ('/ url = "/ i',"",$ blog); $ blog = str_replace (""","",$ blog);
if (! preg_match ("/ $ keyword/i", $ blog)) {unset ($ blog);} else {
echo $ blog. "
";
$ File = fopen ("links.txt", "a +"); fwrite ($ file, "$ blogrn");
fclose ($ file);
}
}

Приклад # 3

У файл з лічильником, у форматі domen.com. Після кожної відпрацювання, скрипт створює новий файл links_ *. У папці зі скриптом створити на запис файл count.txt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ url = 'http://blogsearch.google.com/changes.xml?last=120';
$ M = file_get_contents ($ url);
preg_match_all ('/ url ="(.*?)"/',$ m, $ match);
$ C = file_get_contents ("count.txt");
$ C = trim ($ c);
$ C = $ c +1;
$ Count = count ($ match [1]);
echo $ count;
for ($ i = 1; $ i $ Blog = parse_url ($ match [1] [$ i]);
$ All .= $ blog ['host']. "N";}
$ Filename = 'links_'. $ C. '. Txt';
$ Fp = fopen ($ filename, "w");
fputs ($ fp, $ all);
fclose ($ fp);
$ Fc = fopen ('count.txt', "w");
fputs ($ fc, $ c);
fclose ($ fc);

Мабуть цих прикладів буде достатньо. Решта варіантів, під ваші потреби накидати вже самі думаю.

Не забуваємо що є ще крон, на який можна поставити все це справа і тільки встигати знімати свіжі бази. Даний метод, дозволяє аналізувати довільні в середньому 15-20K за один запит скрипта Прімера # 1, або до 100К урлов за хвилину на середньому залозі і каналі. Можна запустити кілька копій скрипта і забути про Hrefer на парсинг Гугла з морди, а відразу купити XRumer і почати бомбити по свіжих і власним баз.
Адіос.

Опубліковано: 31/03/11 @ 03:10
Розділ Блоги Пошуковики

Рекомендуємо:

Сток корисної інформації
Палю тему. Гугл профілі.
Простий приклад клоакинга по Реферрер
Вебмастера обманюють оптимізаторів! Будьте пильні.
Пробуємо прогнозувати трафік: з чого почати?