Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iframe中的Javascript。刮水_Javascript_Watir_Scrape - Fatal编程技术网

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中,然后还有另一个iframe链接,它是用javascript生成的。只有到那时,我才想得到那一页

以下是主页中的代码:

<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)