




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025企业集体劳动合同模板
- 2025湖南湘西州泸溪县妇幼保健计划生育服务中心招聘高校见习生5人考前自测高频考点模拟试题及一套参考答案详解
- 2025广西贵港市港南区大数据发展和政务局招聘编外人员1名考前自测高频考点模拟试题附答案详解(完整版)
- 2025年4月18日四川内江市招聘会岗位考前自测高频考点模拟试题附答案详解(突破训练)
- 2025贵州安顺市参加“第十三届贵州人才博览会”引才271人模拟试卷及答案详解1套
- 2025年铝板购销合同模板
- 2025年十堰市城发集团及所属子公司公开招聘拟聘用人员模拟试卷附答案详解(完整版)
- 2024-2025学年河北省霸州市小学数学六年级期末自我评估提分题详细答案和解析
- 安全法学考试题库及答案
- 中考监考考试题库及答案
- 心理处方手册
- 幼儿园红色小故事PPT:抗日小英雄王二小的故事
- 《教学设计:贸易术语CIF》教学设计
- 案外人执行异议之诉课件
- T-CSCS 015-2021 钢结构深化设计制图标准-(高清版)
- 西方经济学导论全套课件
- “基础教育精品课”PPT课件模板
- 第8部分消防设施标识可视化
- 简约医院医疗工作汇报工作总结PPT模板
- 通用顶管监理规划
- 金泽21世纪美术馆
评论
0/150
提交评论