信息采集-Web信息检索与数据抓取-数据爬取-URLConnection_第1页
信息采集-Web信息检索与数据抓取-数据爬取-URLConnection_第2页
信息采集-Web信息检索与数据抓取-数据爬取-URLConnection_第3页
信息采集-Web信息检索与数据抓取-数据爬取-URLConnection_第4页
信息采集-Web信息检索与数据抓取-数据爬取-URLConnection_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络数据采集

-数据爬取URLConnection北京信息职业技术学院|郑淑晖伊新从Internet获取网页

2发送请求,将网页以流的形式读回来.1)创建一个URL对象:URLurl=newURL("");2)利用HttpURLConnection对象从网络中获取网页数据:HttpURLConnectionconn=(HttpURLConnection)url.openConnection();3)设置连接超时:conn.setConnectTimeout(6*1000);3从Internet获取网页

4)对响应码进行判断:if(conn.getResponseCode()!=200)thrownewRuntimeException("请求url失败");5)得到网络返回的输入流:InputStreamis=conn.getInputStream();6)Stringresult=readData(is,"GBK");

conn.disconnect();从Internet获取网页4总结:--我们必须要记得设置连接超时,如果网络不好,系统在超过默认时间会收回资源中断操作.--返回的响应码200,是成功.--利用ByteArrayOutputStream类,将得到的输入流写入内存.从Internet获取文件5利用HttpURLConnection对象,我们可以从网络中获取文件数据.1)创建URL对象,并将文件路径传入:URLurl=newURL("/20100125/Img269812337.jpg");2)创建HttpURLConnection对象,从网络中获取文件数据:HttpURLConnectionconn=(HttpURLConnection)url.openConnection();从Internet获取文件63)设置连接超时:conn.setConnectTimeout(6*1000);4)对响应码进行判断:if(conn.getResponseCode()!=200)thrownewRuntimeException("请求url失败");5)得到网络返回的输入流:InputStreamis=conn.getInputStream();6)将得到的文件流写出:outStream.write(buffer,0,len);向Internet发送请求参数

71)将地址和参数存到byte数组中:byte[]data=params.toString().getBytes();2)创建URL对象:URLrealUrl=newURL(requestUrl);3)通过HttpURLConnection对象,向网络地址发送请求:HttpURLConnectionconn=(HttpURLConnection)realUrl.openConnection();4)设置容许输出:conn.setDoOutput(true);从Internet获取文件8总结:--在对大文件的操作时,要将文件写到硬盘上.--对文件流操作完,要记得及时关闭--操作大文件是,要一遍从网络上读,一遍要往硬盘上面写,减少内存的使用.这点很重要。向Internet发送请求参数95)设置不使用缓存:conn.setUseCaches(false);6)设置使用POST的方式发送:conn.setRequestMethod("POST");

8)设置文件字符集:conn.setRequestProperty("Charset","UTF-8");7)设置维持长连接:conn.setRequestProperty("Connection","Keep-Alive");向Internet发送请求参数

109)设置文件长度:conn.setRequestProperty("Content-Length",String.valueOf(data.length));11)以流的方式输出.10)设置文件类型:conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");向Internet发送请求参数

11总结:--在开始用HttpURLConnection对象的setRequestProperty()设置,就是生成HTML文件头.--发送POST请求必须设置允许输出--不要使用缓存,容易出现问题.向Internet发送xml数据12XML格式是通信的标准语言,系统也可以通过发送XML文件传输数据.3)获得链接:HttpURLConnectionconn=(HttpURLConnection)url.openConnection();1)将生成的XML文件写入到byte数组中,并设置为UTF-8:byte[]xmlbyte=xml.toString().getBytes("UTF-8");2)创建URL对象,并指定地址和参数:URLurl=newURL("http://localhost:8080/itcast/contanctmanage.do?method=readxml");向Internet发送xml数据

134)设置连接超时:conn.setConnectTimeout(6*1000);7)设置以POST方式传输:conn.setRequestMethod("POST");

5)设置允许输出conn.setDoOutput(true);6)设置不使用缓存:conn.setUseCaches(false);8)维持长连接:conn.setRequestProperty("Connection","Keep-Alive");向Internet发送xml数据149)设置字符集:conn.setRequestProperty("Charset","UTF-8");12)以文件流的方式发送xml数据:outStream.write(xmlbyte);10)设置文件的总长度:conn.setRequestProperty("Content-Length",String.valueOf(xmlbyte.length));11)设置文件类型:conn.setRequestProperty("Content-Type","text/xml;charset=UTF-8");向Internet发送xml数据15总结:--传输大文件不适合用HTML的方式,传输大文件我们要面向Socket编程.确保程序的稳定性.

--我们使用的是用HTML的方式传输文件,这个方式只能传输一般在5M一下的文件.urlConnection采集实例16publicclassWebPageSource{publicstaticvoidmain(Stringargs[]){URLurl;intresponsecode;HttpURLConnectionurlConnection;BufferedReaderreader;Stringline;try{//生成一个URL对象,要获取源代码的网页地址为:url=newURL("");//打开URLurlConnection=(HttpURLConnection)url.openConnection();//获取服务器响应代码

responsecode=urlConnection.getResponseCode();if(responsecode==200){//得到输入流,即获得了网页的内容

reader=newBufferedReader(newInputStreamReader(urlConnection.getInputStream(),"GBK"));while((line=reader.readLine())!=null){System.out.println(line);}}else{System.out.println("获取不到网页的源码,服务器响应代码为:"+responsecode);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论