iframe中的Javascript。刮水
我想弄清楚瓦蒂尔。 这是一种情况。我想监控一些网站上的广告,但清除它们并不容易,因为它们在iframe中,然后还有另一个iframe链接,它是用javascript生成的。只有到那时,我才想得到那一页 以下是主页中的代码:iframe中的Javascript。刮水,javascript,watir,scrape,Javascript,Watir,Scrape,我想弄清楚瓦蒂尔。 这是一种情况。我想监控一些网站上的广告,但清除它们并不容易,因为它们在iframe中,然后还有另一个iframe链接,它是用javascript生成的。只有到那时,我才想得到那一页 以下是主页中的代码: <iframe width="300" height="250" scrolling="no" frameborder="0" id="adbottomleft" src="/ad/left1" name="adbottomleft"></iframe>
<iframe width="300" height="250" scrolling="no" frameborder="0"
id="adbottomleft" src="/ad/left1" name="adbottomleft"></iframe>
如果我想再下一层,我会出错
irb
require "watir-webdriver"
browser = Watir::Browser.new :ff
browser.goto "mangareader.net"
browser.frame(:id, "adbottomleft").frame(:id, "adleft").html -> Don't work.
元素属于与当前帧不同的帧-切换到其包含的帧以使用它。
我应该在第二个代码中更改什么,以使其在下一个iframe中读取
我已经找了好几天了。从selenium开始,然后用c#实现HTMLUnit,然后用python尝试mechanize,但未能达到预期的效果
我一直在跳。我终于想到我能用瓦蒂尔实现我想要的。
我需要一些帮助来完成这件事。有什么建议吗 脚本创建的帧的ID是“adbleft”而不是“adleft”,这可能是您的问题
browser.frame(:id => "adbottomleft").frame(:id => "adbleft").html
如果最终帧的id不是静态的,则可能必须按索引选择它
browser.frame(:id => "adbottomleft").frame(:id => "adbleft").frame(:index => 0)
我建议您从一些概念验证脚本开始,以熟悉WATIR。browser.html弹出页面源html。它正在做它被设计用来做的事情。Watir/watirwebdriver只需几行代码就完全可以满足您的要求,但您首先需要对库有一个基本的了解。是的,这很有效!谢谢你的索引提示。这会帮我的!
irb
require "watir-webdriver"
browser = Watir::Browser.new :ff
browser.goto "mangareader.net"
browser.frame(:id, "adbottomleft").html - Works!
irb
require "watir-webdriver"
browser = Watir::Browser.new :ff
browser.goto "mangareader.net"
browser.frame(:id, "adbottomleft").frame(:id, "adleft").html -> Don't work.
browser.frame(:id => "adbottomleft").frame(:id => "adbleft").html
browser.frame(:id => "adbottomleft").frame(:id => "adbleft").frame(:index => 0)