首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Nokogiri不能解析某个页面上的所有HTML,有什么原因吗?(举例说明)

为什么Nokogiri不能解析某个页面上的所有HTML,有什么原因吗?(举例说明)
EN

Stack Overflow用户
提问于 2019-10-28 19:11:12
回答 1查看 27关注 0票数 0

在实践中,我正在尝试为这个页面上的每个宿舍卡的价格建立一个简单的刮刀:

https://www.hostelworld.com/search?search_keywords=Madrid,%20Spain&country=Spain&city=Madrid&date_from=2019-11-29&date_to=2019-11-30&number_of_guests=1

当我检查页面时,HTML语言清楚地显示每个价格都在“价格”('span.price')类的范围内。因此,我使用Mechanize获得页面主体,然后尝试使用Nokogiri解析主体。

使用这个简单的例子,我似乎无法访问卡片中的任何信息。代码如下:

代码语言:javascript
复制
def scraper
  agent = Mechanize.new
  madrid_url = "https://www.hostelworld.com/search? 
  search_keywords=Madrid,%20Spain&country=Spain&city=Madrid&date_from=2019-11- 
  29&date_to=2019-11-30&number_of_guests=1"
  ###
  page = agent.get(madrid_url)
  page_body = agent.page.body
  parsed_body = Nokogiri::HTML(page_body)
  ###
  test = parsed_body.css('span.price').text
  test_price = test.to_i
  byebug
end

如有任何建议,我们将不胜感激!我可以看到HTML/CSS,但无法访问它,这似乎有悖于直觉。提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2019-10-28 19:23:23

如今,许多网站通过AJAX (XHR)请求加载数据。这些数据将无法机械化。

您可以通过在浏览器中禁用JavaScript加载页面来轻松检查这一点。如果没有显示价格,这意味着它们被JavaScript延迟加载了。

在这种情况下,您需要一个可以执行JavaScript的工具,例如Selenium

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58589899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档