Java-HttpURLConnection爬虫程序-0913.doc_第1页
Java-HttpURLConnection爬虫程序-0913.doc_第2页
Java-HttpURLConnection爬虫程序-0913.doc_第3页
Java-HttpURLConnection爬虫程序-0913.doc_第4页
Java-HttpURLConnection爬虫程序-0913.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

Android总结 孙沛林Java-HttpURLConnection抓取网络数据(2016-9-13)项目:JavaSpiderDemo 环境:MyEclipse8.5 导包源码JavaMyConn.java import java.io.BufferedReader;import java.io.InputStreamReader;import .*;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;/* * 独立的解析一篇CSDN博客 * 提取出:标题,分类,内容 * author 孙沛林 * */public class MyConn extends Thread public MyConn()public MyConn(String surl)this.surl=surl;private String surl;/ 文章的网址Overridepublic void run() getHTML();/ 客户端的浏览器类型public static String UserAgent = Mozilla/5.0 (jsoup),/ PC端的浏览器/ 以下都是手机端的浏览器 Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.2, Mozilla/5.0 (iPad; U; CPU OS 3_2_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B500 Safari/531.21.11, Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18121, //yjflinchong Nokia5700AP23.01/SymbianOS/9.1 Series60/3.0, UCWEB7/28/998, NOKIA5700/UCWEB7/28/977, Openwave/UCWEB7/28/978, Mozilla/4.0 (compatible; MSIE 6.0; ) Opera/UCWEB7/28/989 ;/* * 根据一个网址,获取该页面的HTML源码 * param surl */public void getHTML()try / 1. 创建URL对象URL url = new URL(surl);/ 2. 获取HttpUrlConnection对象HttpURLConnection conn = (HttpURLConnection) url.openConnection();/ 2.5 伪装成浏览器conn.setRequestProperty( User-Agent, / 浏览器的类型 UserAgent1);/ 3. 获取服务器的响应码int responseCode = conn.getResponseCode();System.out.println(responseCode=+responseCode);/ 4. 判断响应码是否正常,HttpURLConnection.HTTP_OK=200if (responseCode = HttpURLConnection.HTTP_OK) StringBuffer sb = new StringBuffer();/ HTML的容器String readLine;/ 每一行的临时存放/5. 处理响应流,必须与服务器响应流输出的编码一致UTF-8BufferedReader responseReader = new BufferedReader( new InputStreamReader( conn.getInputStream(), UTF-8);/ 6. 循环读取流中的行while (readLine = responseReader.readLine() != null) sb.append(readLine).append(n);/ while/ 7. 关闭流responseReader.close();/System.out.println(*HTML*n+sb.toString();/输入HTMLparseHTML(sb.toString(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); / 解析文章详细页面 private void parseHTML(String html) StringBuffer text = new StringBuffer();/ HTML的容器 Document doc = Jsoup.parse(html); / 1文章 title String atitle = doc.getElementsByClass(article_t).first().text(); text.append(n-文章 title-n); text.append(atitle); / 2文章 分类 Elements cats = doc.getElementsByClass(category_p); / 循环遍历 text.append(n-文章 分类-n); for(Element cat : cats) text.append(cat.text(); / 3文章 content String acontent = doc.getElementsByClass(article_c).first().text(); /text.append(acontent); text.append(n=文章 content=n); text.append(acontent); / 数据的插入 /insert(atitle,cats.text(),acontent); System.out.println(n=解析的结果=n +text.toString(); ListPage.java import java.io.BufferedReader;import java.io.InputStreamReader;import .*;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;/* * 解析CSDN博客专栏(包含很多文章列表) * 提取出:文章标题和链接 * author 孙沛林 * */public class ListPage extends Thread public ListPage()public ListPage(String surl)this.surl=surl;private String surl;/ 文章的网址Overridepublic void run() getHTML();/ 客户端的浏览器类型public static String UserAgent = Mozilla/5.0 (jsoup),/ PC端的浏览器/ 以下都是手机端的浏览器 Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.2, Mozilla/5.0 (iPad; U; CPU OS 3_2_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B500 Safari/531.21.11, Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18121, //yjflinchong Nokia5700AP23.01/SymbianOS/9.1 Series60/3.0, UCWEB7/28/998, NOKIA5700/UCWEB7/28/977, Openwave/UCWEB7/28/978, Mozilla/4.0 (compatible; MSIE 6.0; ) Opera/UCWEB7/28/989 ;/* * 根据一个网址,获取该页面的HTML源码 * param surl */public void getHTML()try / 1. 创建URL对象URL url = new URL(surl);/ 2. 获取HttpUrlConnection对象HttpURLConnection conn = (HttpURLConnection) url.openConnection();/ 2.5 伪装成浏览器conn.setRequestProperty( User-Agent, / 浏览器的类型 UserAgent1);/ 3. 获取服务器的响应码int responseCode = conn.getResponseCode();System.out.println(responseCode=+responseCode);/ 4. 判断响应码是否正常,HttpURLConnection.HTTP_OK=200if (responseCode = HttpURLConnection.HTTP_OK) StringBuffer sb = new StringBuffer();/ HTML的容器String readLine;/ 每一行的临时存放/5. 处理响应流,必须与服务器响应流输出的编码一致UTF-8BufferedReader responseReader = new BufferedReader( new InputStreamReader( conn.getInputStream(), UTF-8);/ 6. 循环读取流中的行while (readLine = responseReader.readLine() != null) sb.append(readLine).append(n);/ while/ 7. 关闭流responseReader.close();/System.out.println(*HTML*n+sb.toString();/输入HTMLparseHTML(sb.toString(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); / 解析文章详细页面 private void parseHTML(String html) StringBuffer text = new StringBuffer();/ HTML的容器 Document doc = Jsoup.parse(html); Elements items = doc.getElementsByTag(h4); for (Element item : items) / 找到链接 Element link = item.getElementsByTag(a).first(); if(link!=null) String href = link.attr(href); String title = link.text(); text.append(href); text.append(title); text.append(n-n); /getHTML(href); new MyConn(href).start();/ 启动线程- 解析一篇文章 Main.javaimport java.util.*;/* * java爬虫程序 * author 钧 * */public class Main /* * param args */public static void main(String args) / 循环解析多个URL/List list = new ArrayList();/list.add(/withiter/article/details/16802241);/list.add(

温馨提示

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

评论

0/150

提交评论