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
效益与效率的区别07-17
黄山印记作文800字07-13
城市轨道交通人因事故分析及评价研究(大学生课程论文)05-30
《折线统计图》四下册数学电子教案二06-27
我的成长故事作文500字04-01
拥抱大海作文400字06-27
箱梁模板01-30
2008年7月江苏自考统计基础真题及答案11-09
- 清真菜谱
- 我国国民经济和社会发展十二五规划纲要(全文)
- 高三物理机械振动和机械波复习2
- 浙江省公路山岭隧道机械化装备应用指导手册 doc - 图文
- 2018届高三数学文科二轮复习:专题检测(九) 导数的简单应用
- 2015年上海市公务员录用考试《行政职业能力测验》试卷(B类)
- 七年级道德与法制下册
- 大班户外游戏教案
- 病虫害预警 - 图文
- 某养鱼场为了提高经营管理水平
- 汉中市勉县尧柏余热汽机规程 10
- 烹饪试卷
- 事业单位考试公共基础知识专项分类题库训练
- 语文:第2课 走一步,再走一步 课堂导学案(人教版 七上)
- 天汉使用手册
- 人教版小学三年级数学下册教学计划
- 房地产销售管理完全操作手册122页
- 2009年评审通过具有中学高级教师专业技术资格人员名单...
- 《15秋公共关系学》作业1
- 2017最新版监理公司三标一体管理手册
- 爬虫
- HttpURLConnectio
- 程序
- Java
- 0913
- 最高人民检察院公诉案件(一审)审查报告样本(新)
- 湖滨小学关于开展全省学校安全工作大检查的情况报告
- 浅谈关于当前初中数学教学的思考-精选教育文档
- 积极心态 驾驭命运 成就美丽人生
- 2015江苏省公安机关录用人民警察面试时间
- office - Excel - VBA入门基础 - 图文
- 愚公移山2004-2011年中考题(含答案)
- 买卖合同解释全文
- 如何上好一堂钳工实习课
- 纳米粉体的制备
- 有理数单元测试(二)(人教版)(含答案)
- 9-1打印机权限、所有权、分隔页
- 我国中小企业财务管理发展的瓶颈与突破
- 金州高中生物校本课程开发实施方案
- 03常礼举要讲记(在校)
- 物有所值评价定性分析 - 附件2 - 评分标准
- 低碳经济与循环经济继续教育90分试题
- 禅道的表格
- 配套K12高中地理第三章旅游景观的欣赏3.2旅游景观欣赏的方法练习
- 工会会计科目