gpt4 book ai didi

html - Perl,使用 Mechanize-Firefox,如何在保留在较大框架集中的同时扩展框架。

转载 作者:行者123 更新时间:2023-12-04 16:22:26 25 4
gpt4 key购买 nike

我正在抓取一个广泛使用框架的网站。在每一帧中都有一段 javascript,如下所示:

function CheckUniqName(uniq) {
if (top.name != uniq) {
top.window.location.assign("<a webpage I don't want to redirect to>");
return false;
}
return true;
}
CheckUniqName("#unique_string#")

如果我使用 $mech->follow_link(name=>'FrameName') 打开这些框架之一,那么我会立即重定向到“我不想重定向到的网页”。关闭 JavaScript 会阻止重定向(显然),但我需要“打开”JavaScript 才能完成页面上的某些操作。

我有一些关于如何使这项工作的想法,但我不知道如何实现它们:

(1) 展开框架而不是像链接一样跟随它们。如果我展开框架但保留在较大的框架集中,则 top.name 将等于 uniq 并且不会重定向(因为最顶层窗口的名称是“#unique_string#”)。怎么能做到这一点?我不明白 $mech->expand_frames 是如何工作的。

(2)禁用这些JS行。在 Mechanize 中是否可以强制程序忽略某些内容行?如果 Mechanize 会忽略“top.window.location.assign(""); 行那么它不会重定向。那有可能吗?

(3) 改变变量top.name 的值。如果我可以将 top.name 重新分配为等于 #unique_string#,那么无论窗口名称是什么,我都可以通过检查。那可能吗?我认为服务器定义了窗口名称。

来自堆栈的任何帮助将不胜感激。这让我发疯。

最佳答案

也许你可以使用greasemonkey插件在加载之前从页面中删除这段JS?

问候,

关于html - Perl,使用 Mechanize-Firefox,如何在保留在较大框架集中的同时扩展框架。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13960018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com