Ruby Watir 来自 html 而不是 URL

问题描述 投票:0回答:2

在我的场景中,我正在抓取一个内容由 javascript 生成的网站。我知道 watir 非常适合我的情况,但众所周知,它往往会增加一些开销并使程序花费更长的时间。

目前我可以使用 Nokogiri 登录并使用用户名/密码发送发布请求,你可以想象这真的很快。成功登录后,我会转到我想要抓取的内容所在的地址,正如我之前所说,这些内容是一些 javascript 处理的结果,所以从这一点来看 Nokogiri 是不好的。

我想要做的是使用 Watir 加载 Nokogiri 已经返回的 html,以便它解析所有 javascript,然后继续抓取生成的 HTML,而不必从一开始就使用 Watir 以减少处理时间。

有没有办法将内容从 html 字符串加载到 Watir 中,以便对其进行处理,而不是调用“goto”方法?

ruby web-scraping nokogiri watir
2个回答
0
投票

你的问题的直接答案是否定的。 Watir 并不是为了抓取网页而设计的,而是为了测试网页而设计的。测试网页意味着导航到它们并与它们交互。

此外,如果您的 html 解析器不能解决您的问题,那么将文本从该解析器复制到 Watir 也无法解决您的问题。


0
投票

你可以随时尝试。

require 'open-uri'
require 'nokogiri'
require 'watir'
#previous stuff
`touch temp.html`
File.open("temp.html", "w") {|f| f.write(nokodoc.html)}
b = Watir::Browser.new
b.goto("file://#{Dir.pwd}/temp.html")
© www.soinside.com 2019 - 2024. All rights reserved.