实际上,我做了一些类似的事情。
通过使用 GreaseMonkey,您可以编写一个用户脚本,该脚本将根据您的需要与页面进行交互。您可以获取下一页链接并根据需要滚动内容。
您还可以通过一些名为 GM_getValue 和 GM_setValue 的新函数在本地存储任何数据,在 Firefox 中。
我采取懒惰的方式。我只是生成一长串在浏览页面时找到的 URL。我做了一个粗略的“document.write”方法,然后我将我的 URL 列表作为一个批处理文件转储出来,该文件在wget
.
那时我复制并粘贴批处理文件然后运行它。
如果您需要经常运行它以使其自动化,过去有一种方法可以将 GreaseMonkey 脚本转换为 Firefox 扩展,从而获得更多功能。
另一个选项目前是 AFAIK,仅限 Chrome。您可以收集所需的任何信息并从中构建一个大文件,然后使用download
链接的属性并单击一下即可保存内容。
更新
我打算分享我正在做的完整代码,但它与一个特定的网站如此紧密地联系在一起,它并没有真正的帮助——所以我会寻求一个更“通用”的解决方案。
警告,此代码是即时键入的,实际上可能不正确。
// Define the container
// If you are crawling multiple pages, you'd want to load this from
// localStorage.
var savedLinks = [];
// Walk through the document and build the links.
for (var i = 0; i < document.links.length; i++) {
var link = document.links[i];
var data = {
url: link.url,
desc = getText(link)
};
savedLinks.push(data);
}
// Here you'd want to save your data via localStorage.
// If not on the last page, find the 'next' button and load the next page
// [load next page here]
// If we *are* on the last page, use document.write to output our list.
//
// Note: document.write totally destroys the current document. It really is quite
// an ugly way to do it, but in this case it works.
document.write(JSON.stringify(savedLinks, null, 2));