【发布时间】:2016-01-19 17:06:27
【问题描述】:
此代码适用于某些页面,例如 klix.ba,但无法弄清楚为什么它不适用于其他页面。
没有错误说明出了什么问题,没什么。
如果 puts 页面有效,这意味着我可以定位该页面并对其进行解析,为什么我无法获取单个元素?
require 'nokogiri'
require 'open-uri'
url = 'http://www.olx.ba/'
user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7"
page = Nokogiri::XML(open(url,'User-Agent' => user_agent), nil, "UTF-8")
#puts page - This line work
puts page.xpath('a')
【问题讨论】:
-
你是从XML解析的,为什么不解析HTML
Nokogiri::HTML(open(url) -
欢迎来到 Stack Overflow。请阅读“How to Ask”和“minimal reproducible example”。我们需要更好地了解这个问题。您在调试时尝试过什么?哪些网站有效,哪些无效?
-
对不起,我不知道还能写什么。正如我上面提到的,这是一个没有任何错误消息的奇怪问题。在一个页面上工作得很好,但在另一个页面上失败。然后@Phil M 提到调用 XML 可能会导致问题,他是对的。
标签: ruby web-scraping nokogiri screen-scraping open-uri