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