2011-05-16 20 views
6

URL'leri Google arama sonuçlarından çekme konusunda yardıma ihtiyacım var ve Nokogiri'yi kullanması söylendi. Onu yükledim ve Nokogiri dokümanlarını okudum ama nereden başlayacağımı bilmiyorum - hepsi benim için Yunan.Google arama sonuçlarını Nokogiri ile nasıl ayrıştırabilirim?

Aradığımı, her bir sonucun URL'sini (<cite> etiketi arasında) bulmak istediğimi biliyorum. Şimdiye kadar yaptığım her şeyin, arama sonuçlarını çekmesi gerektiğine karar verdim, ancak dosyadan belirli verileri nasıl çekeceğimi bilmiyorum. İşte var kod minicik biraz:

serp = Nokogiri::HTML(open("http://www.google.com/search?num=100&q=stackoverflow")) 
+1

bakmak tadını çıkarın. Çok güçlüler ve hızlı bir şekilde yuvarlanmanıza yardımcı olabilirler. Oradan XPath'a girmeniz gerekecek, çünkü HTML veya XML'de olsun, genellikle düğümlerden sonra nasıl gidiyoruz. XPath, CSS'den çok daha güçlüdür, ancak bu güç, ek karmaşıklık ile birlikte gelir. Ayrıca, bir kullanılabilirlik ipucu olarak, '' '' 'Node '' olarak bir şeyin ilk oluşumunu bulur ve' arama' '' NodeSet' döndüren tüm oluşumları bulur. NodeSet, bir dizi düğüm gibidir, böylece bunu tekrarlayabilirsiniz. –

cevap

10

:)

require 'open-uri' 
require 'nokogiri' 

page = open "http://www.google.com/search?num=100&q=stackoverflow" 
html = Nokogiri::HTML page 

html.search("cite").each do |cite| 
    puts cite.inner_text 
end 

da CSS erişimci Nokogiri kullanımını araştırmak nokogiri tutorials

+0

Eski bir gönderiyi düzeltmek için değil, Google sonuçları için sonuç sayısını kontrol etmenin modern bir yolu olup olmadığını biliyor musunuz? Num sorgu dizesi artık çalışmıyor. –

+0

@DaveBu benim için çalışıyor ama bence 100 sonuçların zor bir sınırı var – makevoid

+0

Bu daha fazla işe yaramıyor gibi görünüyor, google vahşi ayrıştırma gibi değil –

İlgili konular