Mar*_*rco 9 javascript web-scraping phantomjs casperjs
我正在尝试使用CasperJS来抓取一个拥有动态内容并且到目前为止失败的网站.该网站使用几个js库(例如Prototype)来使用自动完成来创建内容.因此,我试图插入一些值并触发事件以引发内容创建.插入和触发事件可以正常工作,但不会创建任何内容.
我是CasperJS的新手,发现它与库的相对路径有问题.我怀疑我的问题来自于在我的页面环境中没有正确加载的库.因此我试着injectJs像这样注射它们
// ...创建casper并做一些其他的事情
casper.then(function(){
Run Code Online (Sandbox Code Playgroud)this.echo(this.page.injectJs('http://www.my-website.com/path/to/js1')); this.echo(this.page.injectJs('http://www.my-website.com/path/to/js2')); });
不幸的是,这两个函数都返回false.脚本的路径是正确的,在哪里可能是这个问题的根源?
非常感谢您的帮助.
我不相信 CasperJS 可以处理注入脚本的 HTTP 请求。这很奇怪,因为他们实际上在包含 jQuery 的常见问题解答中展示了这一点。然而,同一个常见问题解答如下:
您无法使用 HTTP 协议注入脚本,实际上必须使用脚本资源的相对/绝对文件系统路径。
为了再次检查,我自己使用 Mac OS X 和上面的代码进行了尝试。echo 的结果是false通过 http 使用文件以及true本地文件时的结果。