引入nokogiri解析为metawords
问题描述:
我知道这个问题已经被刚才问,但我无法得到解析结果。我试图用nokogiri来解析metawords,有没有人能指出我的错误?引入nokogiri解析为metawords
keyword = []
meta_data = doc.xpath('//meta[@name="Keywords"]/@content') #parsing for keywords
meta_data.each do |meta|
keyword << meta.value
end
key_str=keyword.join(",")
我试着在irb中运行这个,但关键字返回nil。
这是我用它在IRB
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::HTML("www.google.com")
已经尝试从其他计算器职位的替代品像
Nokogiri html parsing question,但没有用,他们还是回到零。我想我在某处做错了什么。
答
www.google.com没有在源的任何元的关键字。查看页面上的源代码以查看自己。所以即使其他一切都完美无缺,您仍然无法获得结果。
-
的
doc = Nokogiri::HTML("www.google.com")
结果是<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html><body><p>www.google.com</p></body></html>
如果你想获取一个URL的内容,你要使用这样的:如果你得到一个有效的
require 'open-uri' doc = Nokogiri::HTML(open('http://www.google.com'))
-
HTML页面,并使用上
keywords
适当的外壳相匹配的来源,它工作正常。这里有一个例子从我的IRB会议上,抓取的网页从恰巧使用name="keywords"
而不是name="Keywords"
我网站上的应用程序之一:irb(main):001:0> require 'open-uri' #=> true irb(main):002:0> require 'nokogiri' #=> true irb(main):003:0> url = "http://pentagonalrobin.phrogz.net/choose" #=> "http://pentagonalrobin.phrogz.net/choose" irb(main):04:0> doc = Nokogiri::HTML(open(url)); nil # don't show doc here #=> nil irb(main):005:0> doc.xpath('//meta[@name="keywords"]/@content').map(&:value) #=> ["team schedule free round-robin league"]
+0
感谢您的解决方案...事实证明,这对我的小K来说确实是一个愚蠢的错误,是的,这是一个错误的说法,使“所有可能的解决方案”,而不是“许多解决方案” – noobie
难道这个答案在这里为你工作? http://stackoverflow.com/questions/3442237/nokogiri-html-parsing-question/3442302#3442302这可能是问题的重新发布。 –
@Devin我已经试过了..它返回零为好。我尝试了所有可能的解决方案。 – noobie
@noobie你还没有“尝试过所有可能的解决方案”。这是一个愚蠢的,不可能的,情节化的东西要写。 – Phrogz