Google blog arama sonuçlarını ayrıştırmak nasıl?

3 Cevap php

Ben google seach blogdan sonuç sayısını ayrıştırmak çalışıyorum. Biri bana yardım eder misiniz!

http://blogsearch.google.com/blogsearch?hl=en&ie=UTF-8&q=a&btnG=Search+Blogs

Bir tam sayfa döndürür. Sağ tarafta gördüğünüz (Results 1 - 10 of about 2,504,830,546 for a. (0.05 seconds)).

Nasıl alabilir 2,504,830,546??

Thanks. Regards.

3 Cevap

Normalde regexes ile bir HTML dosyasını ayrıştırmak gerektiğini, ancak bu durumda bir istisna yapabilir (özellikle sayfa hala <font> kullandığından beri, yapı yine kırık ve bir XML ayrıştırıcı çok yardımcı olmaz) . Burada Bu kod parçası zaten web sayfasını getirilen ve dize değişkeni içine koyduk varsayar $webpage_as_string:

preg_match('|Results.+?of +about +\<b\>([0-9,]+)\<\/b\> +for|', $webpage_as_string, $matches);

$matches[1], bir dize olarak sonucu içerecektir. Tabii ki, bu kod olarak yakında Google bu site şablonunu değiştirir gibi kıracak ... virgül filtre ve bir dizi ayrıştırmak gerekiyordu.

http://php.net/manual/en/function.preg-match.php işlevi hakkında daha fazla bilgi içerir, model manuel burada: http://www.php.net/manual/en/reference.pcre.pattern.syntax.php

Neden sadece kendi search API, hangi blogu arama içerir kullanmak değil mi?

Eğer varsa wget

$ wget -O- -q "http://blogsearch.google.com/blogsearch?hl=en&ie=UTF-8&q=a&btnG=Search+Blogs" | awk -vRS="Browse Top Stories|Blog results" -vFS='about|for' '/Results/{gsub(/<b>|<\/b>/,"",$2);print $2}'
 2,493,517,127