我们经常会遇到这样的问题,通过HTTP访问命令爬回来的HTML如何使用?
比如要取得某个元素的值,或者某几个元素的值,甚至是想要取得某个表格中某个或者全部值
当然按照最笨的办法就是进行文本查找,虽然笨是笨了点,但还是能用的,但这种方式真的太笨,反正我不太推荐,今天讲的是我们能不能把它当成一个网页用JQ来取值,那不是就太方便了吗
我是一个JS菜鸟,甚至连JQ都不会用,因此查了很了资料,也在一些网友的指点下逐渐找到了方向,这其中一个关键就是JQ里的parseHTML功能,它可以将HTML转换成DOM,就是网页文档,让你可以像操作网页一样去操作这个HTML。
如何爬HTML就不讲了,拿到HTML后,首先将其转换为DOM对象
//先将采集而来的HTML变量用JS获取到值
var cellValue = Forguncy.CommandHelper.getVariableValue("html");
//再将HTML转换为DOM对象
var $html = $($.parseHTML(cellValue));
下边的操作就是一个正常网页操作的过程了,我作一个演示,抛砖引玉吧,我演示的是从按键精灵后台将注册码抓到本地表格中
首先找到注册码这个元素对象,其实就是一个表格
var $tbody = $html.find("#tbRegCode");
再从这个对象中找到所有的注册码行,其实就是表格的所有行,也就是TR,因为TR行是有很多行的,要取出所有行的值就要用到JQ的EACH方法,在EACH方法中使用函数完成值的获取与加入到表的功能。
var $tr = $($tbody.find("tr").each(function () {
var $td = $(this).find("td");
var id = $(this).attr("tagId");
var regcode = $(this).attr("tagRegCode");
var appname = $td.get(2).outerText;
var regcodestate = $td.get(6).outerText;
var enddate = $td.get(10).outerText;
var regcodenumber = $td.get(8).outerText;
var bz = $td.get(11).outerText;
var listview = Forguncy.Page.getListView("表格1");
//添加新行
listview.addNewRow(
{
注册码ID: id,
注册码编号: regcode,
应用名称: appname,
注册码状态: regcodestate,
到期时间: enddate,
注册码开数: regcodenumber,
注册码备注: bz
});
}));
这样就将HTML中的所有注册码提取到我们的表格中了,至于表格如何保存,想如何使用就不在我们讨论话题内了,祝大家一次成功!
|
|