保存使用 casperjs 抓取网页时获得的表数据
Saving table data obtained while scraping a webpage using casperjs
哪种方法是
保存使用casperjs抓取网页时获得的表数据的最佳方法?
使用 json 对象并在序列化后将其存储为文件。
使用 ajax 请求到 php,然后将其存储在 mysql 数据库中。
我只使用第二种情况:
首先:获取存储在全局信息变量中的信息
var globalInfo;
casper.thenOpen("www.targetpage.cl/valuableInfo", function() {
globalInfo = this.evaluate(function(){
var domInfo = {};
domInfo.title = "this is the info";
domInfo.body = "scrap in the dom for info";
return domInfo;
});
});
第二:访问页面以存储捕获的数据
casper.then(function(){
casper.thenOpen("www.mipage.com/saveIntheDBonPost.php", {
method: 'post',
data:{
'title': ''+globalInfo.title,
'body': ''+globalInfo.body
}
});
});
www.mipage.com/saveIntheDBonPost.php
获取 $_POST
参数中的数据并将其存储到数据库中。
为了简单起见,将CasperJS视为一种获取数据并在另一种语言中处理数据的方法。我会选择选项 #1 - 获取 JSON 格式的数据,并将其保存到文件中以供以后处理。
为此,您可以使用 PhantomJS 提供的文件系统 API。您还可以将其与CasperJS的cli接口结合使用,以允许您将参数传递到脚本中(例如,要写入的临时文件)。
处理所有这些问题的脚本如下所示:
- 获取临时文件路径(在 Linux 系统上
mktemp
)。 - 调用 CasperJS 脚本,传入该临时文件路径作为参数。
- 获取数据,使用文件系统 API 将其写入该文件,然后退出。
- 读入文件,使用它(保存到数据库等),删除临时文件。
相关文章:
- VBA加载网页并提取内存中的数据
- 使用JavaScript在网页之间进行数据传输
- 如何在网页之间存储数据
- 在php中的同一网页上检索所选下拉项的值,并使用其他数据将其发布到其他表单
- 从脚本中获取数据,发送到网页进行显示
- 从网页获取数据的更好方法,而不是使用DOM和HTML元素
- 在网页上显示实时服务器数据
- 数据库中的数据未正确插入我的网页
- 从动态生成的列表在PHP网页之间传递数据
- 使用javascript/jquery从网页中获取动态更改的数据
- 如何在不编码或保存数据的情况下将二进制数据从javascript传递到actionscript(网页到flash)
- 如何将数据从一个网页发送到另一个网页
- 如何在基于json数据的Javascript中为网页上的多个对象设置动画
- 使用 JavaScript 通过网页传输数据
- 使用 JavaScript 将数据 json 显示到网页中
- 通过 aspx 网页中的 Angularjs 将数据传递给 WebMethod
- 如何在网页中嵌入隐藏数据并使用 DOM 恢复它
- 如何在脱机工作时将数据写入和更新 HTML5 缓存的网页
- 从 asp.net c# 中的网页获取所有数据(包括图像)
- 在浏览器工具中加载 JSON 数据,但不在网页上加载