Java-HttpURLConnection爬虫程序-0913
更新时间:2023-03-13 17:04: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-13
《情与法的评判》观后感04-02
建设工程投标策略与技巧研究03-14
副总经理助理岗位职责02-25
EMBMS空口协议介绍 - 图文10-23
论文写作注意事项08-01
观看创新社会管理专题片心得体会(2)09-22
部编版《道德与法治》八年级上册4.3《诚实守信》教案06-24
技术支持的学情分析技术支持的学情分析04-25
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 爬虫
- HttpURLConnectio
- 程序
- Java
- 0913
- 论高校爱国主义教育新的时代内涵
- office - Excel - VBA入门基础 - 图文
- 消防专项治理工作总结3000字
- 人际关系网络建模与相关性估计 - 图文
- 浅谈如何培养学生的问题意识
- 新人教八上数学第十二章全等三角形和第十三章轴对称全章的教学反思
- KN-910彩色无纸记录仪说明书
- 政府苗木植物采购及相关配套服务招标文件(发布稿) - 图文
- 2019最新整理-会计从业资格考试《会计基础》模拟题一
- 三级综合医院评审标准(药事管理)2011 - 图文
- 我国中小企业财务管理发展的瓶颈与突破
- 自今年3月8日“马航失联事件”
- 托福听力知识:环境科学和生态学
- 四年级语文下册期末试卷(三)
- GSP认证申请材料样本(仅供参考)讲解
- 买卖合同解释全文
- 35岁前必学的理财窍门
- 三台乐安小学校事业单位岗位说明书九级
- 2012年市政养护处安全生产工作意见
- 学校教育信息化管理工作考核办法-精选版