Atitit.网页爬虫的架构总结

1. 总数的结构..(接口方法) 1

2. 获得页数 1

3. 跳页处理(接口方法) 2

4. 单个的页面处理(接口方法) 2

4.1. 获得页面url 3

4.2. 获得页面html 3

4.3. 获得list 3

4.4. 处理单个的数据条目 3

5. 调用 4

6. 日志的实现 4

7. 参考 4

1. 总数的结构..(接口方法)

public String exec( ) throws IOException     {

fx=new filex(fileName);

int pages=getpage();

;i<=pages;i++)

{

if(i<pageStart)

continue;

try {

singlePage(i);

} catch (Exception e) {

e.printStackTrace();

}

}

fx.close();

2. 获得页数

getpage();

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

3. 跳页处理(接口方法)

if(i<pageStart)

continue;

4. 单个的页面处理(接口方法)

*/

private void singlePage(int page) throws ConnEx, NoRztEx, ParseLsitEx {

String html = null;

try {

String api = (String) getCurPageUrl(page);

//http://www.czvv.com/k5bu6562Rp0c0cc0s0m0e0f0d0.html

websitex wc = new websitex();

wc.refer="

);

}   catch (Exception e) {

e.printStackTrace();

throw new ConnEx(e.getMessage());

}

//================trace

if (new File("C:\\traceOk").exists())

filex.save_safe(html, "c:\\rztTrace.html");

List li=getList(html);

for(Object obj:li)

{

try {

processItem(obj);

} catch (Exception e) {

e.printStackTrace();

}

}

4.1. 获得页面url

4.2. 获得页面html

4.3. 获得list

private List getList(String html) throws NoRztEx, ParseLsitEx {

try {

Document doc = null;

doc = Jsoup.parse(html);

Elements tabs = doc.getElementsByTag("ol");

return tabs;

} catch (Exception e) {

e.printStackTrace();

//System.out.println("norzt:" + addr);

throw new ParseLsitEx("noRzt");

}

4.4.  处理单个的数据条目

private void processItem(Object obj) {

Element item=(Element) obj;

).text();

);

).text();

).text();

).text();

String line = name+","+tel+","+lyesyiren+","+addr;

fx.appendLine_flush_safe(line);

System.out.println( line);

}

5. 调用

WebInfoX x=new WebInfoX();

];// "c:\\r2.csv";

]);

]);;

x.exec( );

System.out.println("--fi");

}

6. 日志的实现

使用默认的console最简单的..或者使用queue+textarea....麻烦的

7. 参考

paip.c++ qt 网页爬虫 的 网络编程 总结 - attilax的专栏 - 博客频道 - CSDN.NET.htm

最新文章

  1. protobuf的编译安装
  2. LINQ系列:Linq to Object分区操作符
  3. tableView简单的动画效果
  4. ORACLE各种小指令
  5. web安全之sql注入原理
  6. 上位机用USB做虚拟串口,总算抓到一个纯代码的总结了,没有坑的完美解决。
  7. HOW TO: Creating your MSI installer using Microsoft Visual Studio* 2008
  8. fedora27安装DB2 Express-C 11
  9. 强大的jupyter,python开发者的福音
  10. 基于openssl搭建https服务器
  11. 【Linux命令】top命令
  12. 【XSY2760】nonintersect 计算几何
  13. mongodb副本集 statestr状态说明/解释
  14. 基于Extjs 4.2的通用权限管理系统,通用后台模板,EF+MVC+Extjs 4.2
  15. Elasticsearch 学习之 节点重启
  16. CSUOJ 1007 矩形着色
  17. [Node.js]26. Level 5 : Route rendering
  18. ActiveMQ - 入门指南
  19. 程序中实现两个DataTable的Left Join效果(修改了,网上第二个DataTable为空,所处的异常)
  20. android studio的弹出层

热门文章

  1. python接口自动化8-参数化
  2. 能力成熟度模型CMM
  3. 分享一个 markdown 编辑器 - Mditor
  4. 深度Linux Deepin系统安装教程使用体验
  5. 在CMD下如何搜索某个名字的文件?
  6. 【Caffe代码解析】Layer网络层
  7. linux下重启oracle的方法
  8. I/O复用的应用场合
  9. Google开源单元測试框架Google Test:VS2012 配置
  10. Android Studio之多个Activity的滑动切换(二)