网页抓取处理乱码遇到的问题

问题描述

本程序想实现的是把网页保存到本地没有乱码,并能成功的提取网页的标题和关键字。若把“注释一”下面的几行代码注释掉,“注释二”下的while语句内容就能正常运行,从中解析其他网页内容;若“注释一”内容不注释,“注释二”下的while语句内容不能正常运行,不能从本网页中解析url地址。publicvoidgetWebByUrl(StringstrUrl,Stringcharset,StringfileIndex){try{//if(charset==null||"".equals(charset))charset="utf-8";System.out.println("Gettingwebbyurl:"+strUrl);addReport("Gettingwebbyurl:"+strUrl+"n");URLurl=newURL(strUrl);bytebytes[]=newbyte[1024*1000];intindex=0;URLConnectionconn=url.openConnection();conn.setDoOutput(true);InputStreamis=null;is=url.openStream();//注释一//intcount=is.read(bytes,index,1024*100);////while(count!=-1){////index+=count;//count=is.read(bytes,index,1);//}StringfilePath=fPath+"/web"+fileIndex+".htm";//PrintWriterpw=null;FileOutputStreamfos=newFileOutputStream(filePath);//OutputStreamWriterwriter=newOutputStreamWriter(fos);//pw=newPrintWriter(writer);BufferedReaderbReader=newBufferedReader(newInputStreamReader(is));StringBuffersb=newStringBuffer();StringrLine=null;Stringtmp_rLine=null;//注释二while((rLine=bReader.readLine())!=null){tmp_rLine=rLine;intstr_len=tmp_rLine.length();if(str_len>0){sb.append("n"+tmp_rLine);//pw.println(tmp_rLine);//pw.flush();if(deepUrls.get(strUrl)<webDepth)getUrlByString(tmp_rLine,strUrl);}}tmp_rLine=null;fos.write(bytes,0,index);//is.close();//pw.close();fos.close();Stringcontext=sb.toString();Stringtt=getTitle(context);Stringt=getKeywords(context);System.out.println("Getwebsuccessfully!"+strUrl);System.out.println("title:"+tt);System.out.println("keywords:"+t);addReport("Getwebsuccessfully!"+strUrl+"n");addWebSuccessed();}catch(Exceptione){System.out.println("Getwebfailed!"+strUrl);addReport("Getwebfailed!"+strUrl+"n");addWebFailed();}}publicvoidgetUrlByString(StringinputArgs,StringstrUrl){StringtmpStr=inputArgs;StringregUrl="(?<=(href=)["]?[']?)[http://][^\s"'\?]*("+myDomain+")[^\s"'>]*";Patternp=Pattern.compile(regUrl,Pattern.CASE_INSENSITIVE);Matcherm=p.matcher(tmpStr);booleanblnp=m.find();//inti=0;while(blnp==true){if(!allUrls.containsKey(m.group(0))){System.out.println("Findanewurl,depth:"+(deepUrls.get(strUrl)+1)+""+m.group(0));addReport("Findanewurl,depth:"+(deepUrls.get(strUrl)+1)+""+m.group(0)+"n");arrUrls.add(m.group(0));arrUrl.add(m.group(0));allUrls.put(m.group(0),getIntWebIndex());deepUrls.put(m.group(0),(deepUrls.get(strUrl)+1));}tmpStr=tmpStr.substring(m.end(),tmpStr.length());m=p.matcher(tmpStr);blnp=m.find();}}

解决方案

解决方案二:
有人帮忙给看看吗
解决方案三:
该回复于2011-04-26 09:08:31被版主删除

时间: 2024-09-18 15:34:42

网页抓取处理乱码遇到的问题的相关文章

httpwebrequest网页抓取数据乱码

问题描述 httpwebrequest网页抓取数据乱码 protected void Page_Load(object sender, EventArgs e) { string url = "http://www.veryzhun.com/planenumber.html"; string strall = HttpGet(url); //string srr1 = GetHtmlFromGet(url,Encoding.GetEncoding("gb2312")

(急急急)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);Bu

用TinySpider进行网页抓取实例

本例中用到的maven坐标变化如下: ? 1 2 3 4 5 <dependency> <groupId>org.tinygroup</groupId> <artifactId>org.tinygroup.spider</artifactId> <version>0.1.0-SNAPSHOT</version> </dependency> 在百度中搜索笑话,看到这么一个网站:http://www.jokeji.

c#-C# 网页抓取保存为图片

问题描述 C# 网页抓取保存为图片 给个网址,然后把整个网页以图片的形式保存到本地要求 :1. 要保存的是整个网页,从头到尾2.如果网页超出屏幕,请模拟下拉滚动条至网页底部,待网页所有元素加载完毕后,再保存 解决方案 这个需求对于那些所谓"瀑布流"方式加载的网页,典型的,新浪微博和google图片搜索结果,它下拉下来是无限长的,而你的内存不是无限大的,一下子就把你的程序搞死了. 解决方案二: c#获取整个网页截图 解决方案三: 现在的问题是如何判断一个网站完全打开,包括所有的图片已经打

源代码乱码问题-抓取数据乱码,不是编码问题

问题描述 抓取数据乱码,不是编码问题 我用WebClient抓取搜房网的数据:http://esf.sh.soufun.com/house/ ,获取到的都是乱码,我确定不是编码问题,几种编码都实验过,确定编码是gb2312.求教各位大哥大姐,怎么能获取的正确的源代码 解决方案 我靠,这是非法的,就是知道也不敢说啊.

html-怎么用Jquery实现从一个网页抓取指定内容

问题描述 怎么用Jquery实现从一个网页抓取指定内容 已知一个网页的网址,现在抓取该网页的指定内容,比如说标题,发布时间,浏览次数等.怎么做????? 解决方案 http://www.gbtags.com/technology/javautilities/20120720jsoupjquerysnatchpage/ 解决方案二: 看看jquery 里面的load 方法. 其实做好还是用服务端语言做. 解决方案三: 客户端搞不了,有跨域问题,这种一般用采集软件来做,如火车头 解决方案四: 用Ht

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

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

善用网页抓取工具,数据轻松收入囊中

数据已走进各行各业并得到了广泛应用,伴随着应用而来的则是对数据的获取和准确挖掘.我们可应用的数据多来自内部资源库以及外部载体,内部数据整合即用,而外部数据却需要先行获取.外部数据的最大载体就是互联网,网页中每天难以数计的增量数据里,就包含着许多对我们有利用价值的信息. 如何最高效地从海量信息里获取数据呢?网页抓取工具火车采集器有高招,以自动化的智能工具代替人工的数据收集,当然更高效也更准确. 一.数据抓取的通用性 作为通用的网页抓取工具,火车采集器基于源代码的操作原理让可抓取的网页类型达到99%

初学指南| 用Python进行网页抓取

引言 从网页中提取信息的需求日益剧增,其重要性也越来越明显.每隔几周,我自己就想要到网页上提取一些信息.比如上周我们考虑建立一个有关各种数据科学在线课程的欢迎程度和意见的索引.我们不仅需要找出新的课程,还要抓取对课程的评论,对它们进行总结后建立一些衡量指标.这是一个问题或产品,其功效更多地取决于网页抓取和信息提取(数据集)的技术,而非以往我们使用的数据汇总技术. 网页信息提取的方式 从网页中提取信息有一些方法.使用API可能被认为是从网站提取信息的最佳方法.几乎所有的大型网站,像Twitter.