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