wget + JavaScript?

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

我有一个网页,它使用客户端 JavaScript 在页面上的数据显示给用户之前对其进行格式化。

是否可以以某种方式使用

wget
下载页面并使用某种客户端 JavaScript 引擎来格式化数据,就像在浏览器中显示的那样?

javascript html browser wget
4个回答
28
投票

你可能可以通过类似 PhantomJS

来实现这一点

您可以编写一个 phantomjs 脚本,它会像浏览器一样加载页面,然后截取屏幕截图或使用 JS 检查页面并提取数据。


9
投票

这是一个简单的 phantomjs 小脚本,它会触发网页上的 javascript,并允许您将其下拉到本地:

file: get.js

var page = require('webpage').create(),
  system = require('system'), address;

address = system.args[1];
page.scrollPosition= { top: 4000, left: 0}  
page.open(address, function(status) {
  if (status !== 'success') {
    console.log('** Error loading url.');
  } else {
    console.log(page.content);
  }
  phantom.exit();
});

按如下方式使用:

$> phantomjs /path/to/get.js "http://www.google.com" > "google.html"

/path/to
url
filename
更改为您想要的内容。


2
投票

wget 则不然,因为我怀疑它是否包含任何形式的 JavaScript 引擎。但是,您可以使用 WebKit 来处理页面,从而处理输出。

使用这样的东西作为如何获取内容的基础:http://situated.wordpress.com/2008/06/04/take-screenshots-of-a-website-from-the-command-line/


0
投票

如果您只需要链接,您可以从 elinks'

-dump
功能中解析它们。

这也提供了文档的 ASCII 版本,但据我所知,它没有提供经过处理的 HTML。

对我有用的过滤器是这样的:

sed -ne 's!^.*[0-9].*\(https://.*\)$!\1!p'
© www.soinside.com 2019 - 2024. All rights reserved.