一个javascript对象保存了一个DOM,是一个TABLE,我们在HTML源代码是看不到table内容的。
有什么办法能获取这个TABLE信息。
我的想法是用第三方程序去获取,但是怎么做?不知道?
这个对像是全局对像吗?是的话就好办了
在地址栏里输入:
javascript:alert(tableobj.outerHTML);
如果不是的话,就只能用FIREBUG调试,在那个对像那行设置断点,查看变量内容
得到这个javascript对象不就行了
这问题太有难道恩@!
比如这个对像是 tableobj
可以
alert(tableobj.outerHTML);打印出表里的信息
如果会用firebug或ie8按F12 调出调试面版,也可以直接看该对像有什么方法和属性等
用第三方的语言抓取网页的源代码,
[code="java"]
//创建Excel。
URL urlmy = new URL(myurl);//指定网页的地址
HttpURLConnection con = (HttpURLConnection) urlmy.openConnection();
con.setFollowRedirects(true);
con.setInstanceFollowRedirects(false);
con.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8"));
String s = "";
StringBuffer sb = new StringBuffer("");
while ((s = br.readLine()) != null) {
sb.append(s+"\r\n");
} [/code]
然后字符串解析网页源码,获取需要的内容。
然后用第三方语言导入Excel
[code="java"]import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileOutputStream;
public class CreateXL {
/** Excel 文件要存放的位置,假定在D盘JTest目录下*/
public static String outputFile="D:/JTest/ gongye.xls";
public static void main(String argv[])
{
try
{
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值
// 如要新建一名为"效益指标"的工作表,其语句为:
// HSSFSheet sheet = workbook.createSheet("效益指标");
HSSFSheet sheet = workbook.createSheet();
// 在索引0的位置创建行(最顶端的行)
HSSFRow row = sheet.createRow((short)0);
//在索引0的位置创建单元格(左上端)
HSSFCell cell = row.createCell((short) 0);
// 定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
// 在单元格中输入一些内容
cell.setCellValue("增加值");
// 新建一输出文件流
FileOutputStream fOut = new FileOutputStream(outputFile);
// 把相应的Excel 工作簿存盘
workbook.write(fOut);
fOut.flush();
// 操作结束,关闭文件
fOut.close();
System.out.println("文件生成...");
}catch(Exception e) {
System.out.println("已运行 xlCreate() : " + e );
}
}
}
[/code]
对Excel的操作详细资料:
http://www.ibm.com/developerworks/cn/java/l-javaExcel/
http://www.chinabs.net/webjava/default.asp?infoid=402
关于看不见的JavaScript对象,一般都是网页里Ajax获取的。如果你想获取,那么你只要知道Ajax请求的地址,比如Ajax发出请求的原始操作有get post两种。Ajax请求的地址就在这样的操作里面。得到地址后依然可以用上面抓取网页的代码获取“看不见的JavaScript对象”
补充:
在JavaScript里面异步获取信息的代码有如下形式:
[code="javascript"]request.open("GET","http://localhost:8080/1/2.jsp?username=jack",'true'); [/code]
只要找到这就这种语句里面的地址,如[color=blue]http://localhost:8080/1/2.jsp?username=jack[/color].
然后用上面抓取网页程序获取信息。
[quote]说着说着思路就出来了[/quote] :idea: :idea:
[quote]我不是要搞盗取数据的事情,只是在海关的一个系统是有些数据我每天都想要,但是封装好的,我没有办法COPY [/quote]理解!