Java-HttpURLConnection爬虫程序-0913
更新时间:2024-03-17 23:07:01 阅读量: 综合文库 文档下载
- javahtml转pdf推荐度:
- 相关推荐
Android总结 孙沛林
Java-HttpURLConnection抓取网络数据(2016-9-13)
项目:JavaSpiderDemo 环境:MyEclipse8.5
导包
第 1 页
Android总结 孙沛林
源码
Java
MyConn.java
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.*;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements;
第 2 页
Android总结 孙沛林
/**
* 独立的解析一篇CSDN博客 * 提取出:标题,分类,内容 * @author 孙沛林 * */
public class MyConn extends Thread {
public MyConn(){}
public MyConn(String surl){this.surl=surl;}
private String surl;// 文章的网址
@Override
public void run() { }
// 客户端的浏览器类型
public static String[] UserAgent = {
\,// PC端的浏览器 // 以下都是手机端的浏览器 getHTML();
\(Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, \(iPad; U; CPU OS 3_2_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like \
(SymbianOS/9.4;
Series60/5.0
NokiaN97-1/20.0.019;
Profile/MIDP-2.1
like Gecko) Version/4.0 Mobile Safari/533.2\,
Gecko) Version/4.0.4 Mobile/7B500 Safari/531.21.11\,
Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18121\,
//http://blog.csdn.net/yjflinchong
\, \,
\, \,
\ }; /**
* 根据一个网址,获取该页面的HTML源码 * @param surl */
public void getHTML(){
try {
// 1. 创建URL对象
第 3 页
Android总结 孙沛林
URL url = new URL(surl); // 2. 获取HttpUrlConnection对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 2.5 伪装成浏览器
conn.setRequestProperty(
\, // 浏览器的类型 UserAgent[1]); }
}
// 3. 获取服务器的响应码
int responseCode = conn.getResponseCode();
System.out.println(\+responseCode); // 4. 判断响应码是否正常,HttpURLConnection.HTTP_OK=200 if (responseCode == HttpURLConnection.HTTP_OK) { }
// TODO Auto-generated catch block e.printStackTrace();
StringBuffer sb = new StringBuffer();// HTML的容器 String readLine;// 每一行的临时存放
//5. 处理响应流,必须与服务器响应流输出的编码一致\ BufferedReader responseReader = new BufferedReader(
new InputStreamReader(
conn.getInputStream(), \));
// 6. 循环读取流中的行
while ((readLine = responseReader.readLine()) != null) {
sb.append(readLine).append(\); }// while // 7. 关闭流
responseReader.close();
//System.out.println(\输入HTML parseHTML(sb.toString());
} catch (Exception e) {
// 解析文章详细页面
private void parseHTML(String html) {
// 1文章 title
String atitle = doc.getElementsByClass(\).first().text(); text.append(\文章 title-------\\n\); text.append(atitle);
// 2文章 分类
Elements cats = doc.getElementsByClass(\);
第 4 页
StringBuffer text = new StringBuffer();// HTML的容器
Document doc = Jsoup.parse(html);
Android总结 孙沛林
// 循环遍历
text.append(\文章 分类-------\\n\); for(Element cat : cats){ text.append(cat.text()); }
// 3文章 content
String acontent = doc.getElementsByClass(\).first().text(); //text.append(acontent);
text.append(\文章 content==============================\\n\); text.append(acontent);
// 数据的插入
//insert(atitle,cats.text(),acontent);
System.out.println(\解析的结果====================\\n\ } }
+text.toString());
ListPage.java
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.*;
第 5 页
Android总结 孙沛林
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;// 文章的网址
@Override
public void run() { }
// 客户端的浏览器类型
public static String[] UserAgent = {
\,// PC端的浏览器 // 以下都是手机端的浏览器 getHTML();
\(Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, \(iPad; U; CPU OS 3_2_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like \
(SymbianOS/9.4;
Series60/5.0
NokiaN97-1/20.0.019;
Profile/MIDP-2.1
like Gecko) Version/4.0 Mobile Safari/533.2\,
Gecko) Version/4.0.4 Mobile/7B500 Safari/531.21.11\,
Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18121\,
//http://blog.csdn.net/yjflinchong
\, \,
\, \,
\ }; /**
* 根据一个网址,获取该页面的HTML源码 * @param surl
第 6 页
Android总结 孙沛林
*/
public void getHTML(){
try {
// 1. 创建URL对象
URL url = new URL(surl); // 2. 获取HttpUrlConnection对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 2.5 伪装成浏览器
conn.setRequestProperty(
\, // 浏览器的类型 UserAgent[1]); }
}
// 3. 获取服务器的响应码
int responseCode = conn.getResponseCode();
System.out.println(\+responseCode); // 4. 判断响应码是否正常,HttpURLConnection.HTTP_OK=200 if (responseCode == HttpURLConnection.HTTP_OK) { }
// TODO Auto-generated catch block e.printStackTrace();
StringBuffer sb = new StringBuffer();// HTML的容器 String readLine;// 每一行的临时存放
//5. 处理响应流,必须与服务器响应流输出的编码一致\ BufferedReader responseReader = new BufferedReader(
new InputStreamReader(
conn.getInputStream(), \));
// 6. 循环读取流中的行
while ((readLine = responseReader.readLine()) != null) {
sb.append(readLine).append(\); }// while // 7. 关闭流
responseReader.close();
//System.out.println(\输入HTML parseHTML(sb.toString());
} catch (Exception e) {
// 解析文章详细页面
private void parseHTML(String html) {
StringBuffer text = new StringBuffer();// HTML的容器 Document doc = Jsoup.parse(html);
Elements items = doc.getElementsByTag(\); for (Element item : items) { // 找到链接
Element link = item.getElementsByTag(\).first();
第 7 页
Android总结 孙沛林
if(link!=null){
String href = link.attr(\); String title = link.text(); text.append(href); text.append(title);
text.append(\); //getHTML(href);
new MyConn(href).start();// 启动线程--> 解析一篇文章 }
} } }
Main.java
import java.util.*; /**
* java爬虫程序 * @author 钧 * */
public class Main {
/**
* @param args */
public static void main(String[] args) {
// 循环解析多个URL
List
list.add(\ list.add(\ list.add(\ for (String url : list) { }
//System.out.println(\你传了:\
String url = \; new ListPage(url).start();// 解析列表
new MyConn(url).start();// 启动线程
// // // // // // //
第 8 页
Android总结 孙沛林
}
}
第 9 页
正在阅读:
Java-HttpURLConnection爬虫程序-091303-17
TCAS及ATC相关故障处理的讨论10-18
国网河南省电力公司2015-2017年运检装备配置规划03-10
美丽的龙泉山作文450字06-21
福田雅居一期工程混凝土施工方案 - 图文02-01
泉州农校道德讲堂活动记录表20130514-“我的中国梦”福建青年创02-26
病区危险品管理规范06-01
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 爬虫
- HttpURLConnectio
- 程序
- Java
- 0913
- 最高人民检察院公诉案件(一审)审查报告样本(新)
- 湖滨小学关于开展全省学校安全工作大检查的情况报告
- 浅谈关于当前初中数学教学的思考-精选教育文档
- 积极心态 驾驭命运 成就美丽人生
- 2015江苏省公安机关录用人民警察面试时间
- office - Excel - VBA入门基础 - 图文
- 愚公移山2004-2011年中考题(含答案)
- 买卖合同解释全文
- 如何上好一堂钳工实习课
- 纳米粉体的制备
- 有理数单元测试(二)(人教版)(含答案)
- 9-1打印机权限、所有权、分隔页
- 我国中小企业财务管理发展的瓶颈与突破
- 金州高中生物校本课程开发实施方案
- 03常礼举要讲记(在校)
- 物有所值评价定性分析 - 附件2 - 评分标准
- 低碳经济与循环经济继续教育90分试题
- 禅道的表格
- 配套K12高中地理第三章旅游景观的欣赏3.2旅游景观欣赏的方法练习
- 工会会计科目