(急急急)java网页抓取 htmlParser 新华网空格变成??? 汉字不乱码 具体请看内容

问题描述

privatefinalstaticStringCRLF=System.getProperty("line.separator");URLur=newURL(“http://news.xinhuanet.com/theory/2011-03/01/c_121133526.htm”);InputStreaminstr=ur.openStream();InputStreamReaderisr=newInputStreamReader(instr,utf);BufferedReaderin=newBufferedReader(isr);while((titleContent=in.readLine())!=null){sb.append(titleContent+CRLF);}具体测试代码(可以试一下)importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.net.MalformedURLException;importjava.net.URL;/***基本能实现网页抓取,不过要手动输入URL将整个html内容保存到指定文件**@authorchenguoyong**/publicclassScrubSelectedWeb{privatefinalstaticStringCRLF=System.getProperty("line.separator");/***@paramargs*/publicstaticvoidmain(String[]args){try{URLur=newURL("http://news.xinhuanet.com/theory/2011-03/01/c_121133526.htm");InputStreaminstr=ur.openStream();Strings,str;BufferedReaderin=newBufferedReader(newInputStreamReader(instr));StringBuffersb=newStringBuffer();BufferedWriterout=newBufferedWriter(newFileWriter("D:/outPut.txt"));while((s=in.readLine())!=null){sb.append(s+CRLF);}System.out.println(sb);str=newString(sb);out.write(str);out.close();in.close();}catch(MalformedURLExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}}汉字什么的都没问题问题就是文章内容里面第一个<p>//3个空格变成???==<p>????内容页面显示<fontid="Zoom"><!--begin_ct--><p>????1954年,毛主席会见英国工党领袖、前首相艾德礼时,身穿的是一条屁股上扎满了罗纹补丁、膝盖等处磨得发白的裤子。他经常说的一句话是“外宾要见我毛泽东,还是要看我穿的啥?”通过毛主席的“补丁裤”,我们能够深深体会到毛主席在外交接待中一贯保持的艰苦朴素的作风和务实实效的精神。这也为我们的公务接待定了一个很好的“标准”。然而,现在的一些公务接待过分注重高档次、高规格、高消费。这不仅有违毛主席的接待“标准”,还助长了党政机关的奢靡、铺张和攀比之风,推高了行政成本,挤占了公共资金,还给一些人提供了贪腐机会,更重要的是会恶化了干群关系,使群众对政府产生信任危机。</p><p>????“一个月仅吃喝就花约206万元”、“一次政府接待午餐花费三万多元”、“两天两夜的行程消费不下十万元”……岁末年初,从江苏的海门到广东的汕尾和东莞,皆因天价的接待费用而深陷“接待门”。天价接待花的是百姓的血汗钱,破坏的是政府在人民群众心中的形象。天价接待的不正之风是与毛主席的艰苦朴素的作风是背道而驰的。艰苦朴素是我党的优良传统,现在尽管经济发展了、生活富裕了,但是仍然要保持这一优良传统。在公务接待中,应该继续保持这一传统,切忌奢靡、铺张和攀比。</p><p>????公务接待要务实实效。公务接待就是为接待上级领导检查或指导工作以及其他单位来交流学习。然而我们现在一些公务接待变了味道,公务接待就是陪对方吃、喝、玩、乐的参观旅游。海门市审计局进行一次公务接待,对方两天两夜行程,此局出动了24名公务人员陪同15位来客,然而工作交流时间不到4小时。他们交流的并不是信息与经验,而是某些人的私人感情;推杯换盏之时,连接起的并不是部门之间、地方之间的合作纽带,而是一些私人利益链。这不得不令人深思啊。我们的公务接待难道真是为了工作吗?还是为了某些人的私人利益?毛主席倡导我们要务实实效,就是要杜绝这种不正之风。公务接待就是为了工作,不是为了让对方来看你的“锦绣花衣”。只有把工作落到实处,把工作做好,“破裤子”又何妨。(华枝春满)</p><!--end_ct--></font>说乱码吧中文没有问题只能说是没有识别出空格,又试了trim&nbsp;&qout;都不行别的网站没有问题只有新华网网上查不到求救大家了

解决方案

解决方案二:
最最可气的是新华网上有的文章也是空格但是不是这样下面正常读出来,没有显示“问好"<p  “佛学院开始招生了吧?”热心指路后,车夫范师傅跟其他车夫们,聊起了这个他们讨论了几年的“老话题”。</p><p>  之所以说是老话题,是因为这个建在龙潭河风景区的佛学院,2005年就已通过国家宗教局批准开始筹建。</p><p>  学院学制为全日制四年本科,面向佛教界和社会招生。学院占地面积约37平方公里,包括了龙潭河风景区,称得上是世界最大佛学院。</p><p>  <strong>报考火热,“失约率”挺高</strong></p><p>  2009年4月6日,河南佛教学院公布了2009年招生简章。此后,各地僧人及社会人士陆续报名。</p><p>  由于学校一期工程未完工,直到今年年初,学院才开始招收第一批学员。</p><p>  因招生简章发布已太久,2月25日考试当天,报名的300多人中,只有25人参加了考试。</p><p>  考试期间,不断有考生从全国各地陆续赶来。他们中,除了僧人,还有在职干部、大学生等。</p><p>  考试时,考生可带手机进场。监考老师只说了一句话:大家都有志于做僧侣,如果连考试都作弊,那就别修行了,耽误自己。</p><p>  考试内容包括佛教知识、语文、外语和面试。</p><p>  生活只有青灯伴古佛?No!</p><p>  在这里上学,不仅免收学杂费,每月有补助、有奖学金,而且食宿费全免。</p><p>  同时,与大学生就业难相反,河南佛教学院刚招生,已有全国各地的寺庙来联系接收毕业生了。</p><p>  学员和僧人一样,每天5点起床,5点半开始做早课,7点用早斋,8点半学习,12点午斋,14点学习,16点半晚课,17点半晚斋,22点熄灯。</p><p>  如果你认为他们就是过着青灯伴古佛的生活,那你就错了。学院不但讲授佛学,还将开设佛教音乐、雕塑、外语等课程。此外,还安排有武术、茶道等。未来,学院还将规划短期禅修班。河南商报记者王棣文/图</p><!--end_ct-->
解决方案三:
最可气的是新华网上有的文章空格不是???也是和上面一样读出来的,<p>后面正常显示出来了不知道是我代码的问题,还是别的问题,要读都不行还好,现在是有的行有的不行就无语了<p>  “佛学院开始招生了吧?”热心指路后,车夫范师傅跟其他车夫们,聊起了这个他们讨论了几年的“老话题”。</p><p>  之所以说是老话题,是因为这个建在龙潭河风景区的佛学院,2005年就已通过国家宗教局批准开始筹建。</p>
解决方案四:
有人帮组我吗?
解决方案五:
content=newString(content.getBytes(),"gb2312").replace('?','').replace(' ','');你的代码一句加上这个就行了,那哥们完全正确
解决方案六:
既然?替换不掉那就应该是编码的问题了
解决方案七:
他们的网页虽然可能是utf8编码的,但是这段文字有可能是用gb2312等中文编码存储的,所以用单纯的utf-8去读会有问题,这是我的猜测呵呵
解决方案八:
没办法你打开网页源码会发现空格变成?是&nbsp;造成的&nbsp;在网页上显示没问题可是你提取文本信息是就有问题了只有将???替换成空格了
解决方案九:
先打印到控制台看看有没有乱!将读取的方法改造一下,就可以了URLur=newURL("http://news.xinhuanet.com/theory/2011-03/01/c_121133526.htm");HttpURLConnectionhttp=http=(HttpURLConnection)ur.openConnection();InputStreamreader=conn.getInputStream();BufferedReaderhttpBufferedReader=newBufferedReader(newInputStreamReader(reader,"UTF-8"));ObjectcurrentLine=null;StringBuffertotalstring=newStringBuffer();while((currentLine=httpBufferedReader.readLine())!=null){totalstring.append(currentLine);}System.out.println(totalstring);

网页是UTF-8编码,亲测,没有乱码
解决方案十:
刚才有点问题,这样!URLur=newURL("http://news.xinhuanet.com/theory/2011-03/01/c_121133526.htm");HttpURLConnectionhttp=(HttpURLConnection)ur.openConnection();InputStreamreader=http.getInputStream();BufferedReaderhttpBufferedReader=newBufferedReader(newInputStreamReader(reader,"UTF-8"));ObjectcurrentLine=null;StringBuffertotalstring=newStringBuffer();while((currentLine=httpBufferedReader.readLine())!=null){totalstring.append(currentLine);}System.out.println(totalstring);

解决方案十一:
引用9楼fulong258的回复:

刚才有点问题,这样!JavacodeURLur=newURL("http://news.xinhuanet.com/theory/2011-03/01/c_121133526.htm");HttpURLConnectionhttp=(HttpURLConnection)ur.openConnection();InputStreamreader=http.g……

同意,???一般是编码的问题。转码后看看效果。调试的时候可以先不用保存到文件。在控制台输出看看结果如何。
解决方案十二:
在那边帖子里面回复你了

时间: 2024-10-26 00:01:08

(急急急)java网页抓取 htmlParser 新华网空格变成??? 汉字不乱码 具体请看内容的相关文章

java网页抓取问题

问题描述 在这个网站中:http://wwwapps.ups.com/WebTracking/track?HTMLVersion=5.0&loc=zh_CN&Requester=UPSHome&WBPM_lid=homepage%2Fct1.html_pnl_trk&trackNums=H8947154378&track.x=%E8%BF%BD%E8%B8%AA 需要抓取:页面中的运输进程的部分 该运输进程 查看源码为一个div层 (<div class=&q

java网页抓取其中2个字符串

问题描述 http://wwwapps.ups.com/WebTracking/track?HTMLVersion=5.0&loc=zh_CN&Requester=UPSHome&WBPM_lid=homepage%2Fct1.html_pnl_trk&trackNums=H8952323185&track.x=%E8%BF%BD%E8%B8%AA抓取该页面的:运输日期和签收人 解决方案 有空研究研究XPath,你能很轻松的取到页面上所有的信息.private st

网络爬虫-用Java来抓取网页实例中HttpClient类的问题

问题描述 用Java来抓取网页实例中HttpClient类的问题 报这么一大堆错误我也是受不了了...... 主要的问题应该是HttpClient类这个东西,在网上查了这个类是httpclient-2.x.jar包的产物,我导入的是httpclient-4.2.2.jar和httpcore-4.2.2.jar包,而这两个新的工具包并不包含HttpClient类,查阅了Java API帮助文档后,自己并没有找到HttpClient类的替代类,而是一堆接口和抽象类,由于是刚开始写这个,所以有点懵.

网页抓取工具之数据预处理

提取的数据还不能直接拿来用?文件还没有被下载?格式等都还不符合要求?别着急,网页抓取工具火车采集器自有应对方案--数据处理. 图片1.png 网页抓取工具的数据处理功能包括三个部分,分别是内容处理.文件下载.内容过滤.下面依次给大家介绍: 1.内容处理:对从内容页面提取的数据进行替换.标签过滤.分词等进一步处理,我们可以同时添加多个操作,但这里需要注意的是,有多个操作时是按照从上到下的顺序来执行,也就是说,上个步骤的结果会作为下个步骤的参数. 下面来逐个介绍一下: ①提取内容为空:如果通过前面的

jsoup-网页抓取时,如何判断一个页面是导航页面,还是内容页面

问题描述 网页抓取时,如何判断一个页面是导航页面,还是内容页面 在做网页抓取的时候,我想先判断这个网页是导航页面(目录页面),还是内容页面 例如 http://sky.news.sina.com.cn/ 这是一个导航页面 http://sky.news.sina.com.cn/2013-10-10/094444474.html 这是一个正文页面 可以通过url进行判断我知道的,能不能通过分析页面源代码进行判断啊,比如说正文字数,主要区域链接个数等等 谢谢大家,请给点思路

正则-java如何抓取不同网站不同网页的内容

问题描述 java如何抓取不同网站不同网页的内容 请教大神们如何用java抓取不同网页(不同网站)相同属性的内容,如图: 用同一个java程序或正则一次性抓取图片上标注的内容(注:有很多这样的网页). 解决方案 内容一般在table或者div中,找出特征匹配,截取字符串就行了 解决方案二: 对于HTML标签,最好用XML解析类库,通过XPATH等方式来查找,这样简单,也不会容易出错,正则表达式处理这个比较麻烦,而且容易出错 解决方案三: 应该用到了,网络请求协议http!

java简单网页抓取的实现方法_java

本文实例讲述了java简单网页抓取的实现方法.分享给大家供大家参考.具体分析如下: 背景介绍 一 tcp简介 1 tcp 实现网络中点对点的传输 2 传输是通过ports和sockets ports提供了不同类型的传输(例如 http的port是80) 1)sockets可以绑定在特定端口上,并且提供传输功能 2)一个port可以连接多个socket 二 URL简介 URL 是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址. 互联网上的每个文件都有一个唯一的

java代码抓取网页邮箱的实现方法_java

实现思路: 1.使用java.net.URL对象,绑定网络上某一个网页的地址 2.通过java.net.URL对象的openConnection()方法获得一个HttpConnection对象 3.通过HttpConnection对象的getInputStream()方法获得该网络文件的输入流对象InputStream 4.循环读取流中的每一行数据,并由Pattern对象编译的正则表达式区配每一行字符,取得email地址 package cn.sdhzzl; import java.io.Buf

java 网页内容抓取-java网页内容抓取问题。

问题描述 java网页内容抓取问题. 这个问题困扰我很久,谁能帮我解答我叫他哥了.问题是这样的,给个网站:http://www.wsdot.wa.gov/ferries/vesselwatch/TerminalDetail.aspx?terminalid=3 中间绿色数据部分是要收集的,但是问题出来啦,他是实时更新的,我用firebug看了下,里面能显示出相应的table,但是好像不是用的js,哪位大神有办法获得相应的数据,我叫他哥了. 解决方案 我已经解决了,送你们个网址http://www.