
爬虫的原理其实就是获取到网页内容,然后对其进行解析。只不过获取的网页、解析内容的方式多种多样而已。
你可以简单的使用>
StringBuffer用之前要初始化,eg:StringBuffer sb = new StringBuffer();
StringBuffer document=new StringBuffer();
String line; // 读入网页信息
while ((line = readerreadLine()) != null){
documentappend(line+"\n");
}
String title = documenttoString();
title = titlesubstring(titleindexOf("<title>") + 7,
titleindexOf("</title>"));
Systemoutprintln(title);
// 取得所有的script tag
Elements eles = docgetElementsByTag(script);
for (Element ele : eles) {
// 检查是否有detailInfoObject字串
String script = eletoString();
if (scriptindexOf(detailInfoObject) -1) {
// 只取得script的内容
script = elechildNode(0)toString();
// 使用ScriptEngine来parse
ScriptEngine engine = new ScriptEngineManager()getEngineByName(javascript);
engineeval(script);
// 取得你要的变数
Object obj = engineget(detailInfoObject);
Systemoutprintln(detailInfoObject = + obj);
// 将obj转成Json物件
JSONObject json = JSONObjectfromObject(obj);
Systemoutprintln(json = + json);
// 取得栏位
Systemoutprintln(destInfo = + jsonget(destInfo));
// 取得栏位(array type)
JSONArray scans = jsongetJSONArray(scans);
for (int i = 0, max = scanssize(); i < max; i++) {
File input = new File("/tmp/inputhtml");
Document doc = Jsoupparse(input, "UTF-8", "IP");
看看这个代码,调用 doctext() 方法即可。
你是想做到JSP页面不加入<%%>这种小脚本吧,那可以采用EL表达式,或者一些框架的输出方式,通常用EL就可以了,因为EL就是用来运算和表达的。后台获取数据以后,这个数据可以是一个简单类型,也可以是一个对象,如果是同一个请求下的,也就是request对象没有变,那么可以用这个存储,否则要用session存储,存储数据的对象是JSP内置的对象,有page,request,session,application等,每个对象都能存储数据,但是作用于不同,page针对当前页面,request针对一个请求,session针对一个会话,application针对整个应用程序。 通常session就可以了。 比如后台获取一个String的name值,那么你可以sessionsetAttribute("name",name); 那么JSP直接可以EL这样写:${sessionScopename} 获取这个值,这里的name是后台封装的键的名,不是后面变量name的名。
你这个是不是A系统想了解B系统的页面信息?
如果是这样存在一个问题比较难解决,就是数据源问题,你A系统并不知道B系统的数据。
如果要获取招聘信息的公司名称,有几个思路
1、A系统做一个iframe,这个iframe里面嵌入你要访问的URL,然后你通过JS,获取这个iframe标签里面的所有内容,这样数据源就解决了
2、你可以做一个浏览器插件,这个插件的功能就是获取当前访问页面的所有字符数据,获取到数据后将数据发送到A系统
3、对网页进行截图,然后通过OCR软件获取中的文字,并将文字保存成文本,A系统读取这个文本信息,数据源问题也可以解决
以上上个只是我临时想到的,可能还可以运用JAVA的全文检索框架试试看,因为没有用过这个框架所以不知道是否能够实现
获取到数据源后,接下来就是业务处理了,业务处理就看具体业务进行处理就行了,技术方面就是一个文字处理的功能,技术好实现,业务比较复杂
新浪的那个天气的值是通过js动态加载的,原始html页面是<div id="SI_Weather_Wrap" class="now-wea-wrap clearfix"></div> 。
而jsoup只是对html进行解析,所以是找不到js动态生成的哪些信息的。
以上就是关于如何用java实现网络爬虫抓取页面内容全部的内容,包括:如何用java实现网络爬虫抓取页面内容、JAVA正则表达式获取网页内容的问题、java网页获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)