解析一个html网页,读取指定的正文(去新闻广告)
2014-01-03 12:52
441 查看
//本例子是以以截取新浪新闻的正文为例子,其他的html类似
@Test public boolean getContent(String link) throws Exception { // 通过链接得到对应的输入流 URL url = new URL(link); URLConnection urlConnection = url.openConnection(); InputStream inputStream = urlConnection.getInputStream(); // 把流存到一个byte[]数组contentByte中 byte[] contentByte = new byte[1024 * 10]; byte[] buffer = new byte[1024]; int i = -1; while ((i = inputStream.read(buffer)) != -1) { contentByte = byteMerger(contentByte, buffer); } // 把数组转为字符串,再对字符串进行相应的增删改查.其中把byte[]数组转为String的时候要注意编码,要与link源的编码一致 String str = new String(contentByte, "gb2312"); // 下面是对字符串的截取 int start = str.indexOf("<!-- 正文内容 begin -->"); int end = str.indexOf("<!-- publish_helper_end -->"); if (start != -1) {// 如果查找成功,即源文件存在要截取的目标 // 截取需要的字符串 String contentStr = str.substring(start, end); // 添加必要的html代码,主要转换的格式也要一一对应.添加的html的编码也要一致 byte[] write1 = "<html xmlns=http://www.w3.org/1999/xhtml><head><meta http-equiv=Content-Type content=\"text/html;charset=GB2312\"><body>" .getBytes("GB2312"); byte[] write = contentStr.getBytes("GB2312"); byte[] write2 = "</body></html>".getBytes(); OutputStream outputStream = new FileOutputStream(Environment .getExternalStorageDirectory().toString() + "/tmp.html"); // 用byteMerger方法来连接byte[]数组 outputStream.write(byteMerger(byteMerger(write1, write), write2)); outputStream.close(); return true; } else {// 如果失败,就把源文件保存下来.查完出错原因 FileWriter fw = new FileWriter(Environment .getExternalStorageDirectory().toString() + "/aa.txt"); fw.flush(); fw.write(str); fw.close(); return false; } } // java 合并两个byte数组 public static byte[] byteMerger(byte[] byte_1, byte[] byte_2) { byte[] byte_3 = new byte[byte_1.length + byte_2.length]; System.arraycopy(byte_1, 0, byte_3, 0, byte_1.length); System.arraycopy(byte_2, 0, byte_3, byte_1.length, byte_2.length); return byte_3; }
相关文章推荐
- 解析RSS+查找新闻网页的正文部分
- C#网页解析获得HTML中JS变量,一个是浏览器交互(EvaluateScriptAsync),一个是HtmlAgilityPack解析
- 分享一个在线解析提取网页视频的网站 不用另外下载工具 绝非广告
- webView加载指定的网页 加载解析的HTML
- HTML基础 a标签实现点击超链接后新建一个网页跳转到指定链接
- 安卓新闻客户端(二) JSOUP解析HTML 抓取网页内容
- Python爬虫项目,获取所有网站上的新闻,并保存到数据库中,解析html网页等(未完待续)
- Jsoup实现新闻网页的爬取,标题,正文,图片,新闻时间,网页链接的解析示例
- 读取网页上的Html源码中指定的数据写入文件
- 抓取一个网页并解析HTML
- Chrome在解析html时的一个bug
- 解析html和采集网页的神兵利器
- 自动关闭弹出新闻广告窗口的一个实际例子,在Windows7+Delphi7中占用内存约为932K左右
- 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies .
- 如何去设计一个自适应的网页设计或HTMl5
- 网页HTML右侧浮动DIV层广告或在线客服图片框最佳代码(支持Firefox&IE)
- php基于Snoopy解析网页html的方法
- HTML网页Table解析
- [置顶] 【实战】如何通过html+css+mysql+php来快速的制作动态网页(以制作一个博客网站为列)
- 教你写一个简单的网页(html网页开发入门)