- 第1章技术基础1
- 1.1第一个程序1
- 1.2准备开发环境2
- 1.2.1JDK2
- 1.2.2Eclipse3
- 1.3类和对象4
- 1.4常量5
- 1.5命名规范6
- 1.6基本语法6
- 1.7条件判断7
- 1.8循环8
- 1.9数组9
- 1.10位运算11
- 1.11枚举类型13
- 1.12比较器14
- 1.13方法14
- 1.14集合类15
- 1.14.1动态数组15
- 1.14.2散列表15
- 1.15文件19
- 1.15.1文本文件19
- 1.15.2二进制文件23
- 1.16多线程27
- 1.16.1基本的多线程28
- 1.16.2线程池30
- 1.17折半查找31
- 1.18处理图片34
- 1.19本章小结35
- 第2章网络爬虫入门36
- 2.1获取信息36
- 2.1.1提取链接37
- 2.1.2采集新闻37
- 2.2各种网络爬虫38
- 2.2.1信息采集器40
- 2.2.2广度优先遍历41
- 2.2.3分布式爬虫42
- 2.3爬虫相关协议43
-2.3.1网站地图44
- 2.3.2Robots协议45
- 2.4爬虫架构48
- 2.4.1基本架构48
- 2.4.2分布式爬虫架构51
- 2.4.3垂直爬虫架构54
- 2.5自己写网络爬虫55
- 2.6URL地址查新57
- 2.6.1嵌入式数据库58
- 2.6.2布隆过滤器60
- 2.6.3实现布隆过滤器61
- 2.7部署爬虫63
- 2.7.1部署到Windows64
- 2.7.2部署到Linux64
- 2.8本章小结65
- 2.1获取信息36
- 第3章定向采集69
- 3.1下载网页的基本方法69
- 3.1.1网卡70
- 3.1.2下载网页70
- 3.2HTTP基础75
- 3.2.1协议75
- 3.2.2URI77
- 3.2.3DNS84
- 3.3使用HttpClient下载网页84
- 3.3.1HttpCore94
- 3.3.2状态码98
- 3.3.3创建99
- 3.3.4模拟浏览器99
- 3.3.5重试100
- 3.3.6抓取压缩的网页102
- 3.3.7HttpContext104
- 3.3.8下载中文网站105
- 3.3.9抓取需要登录的网页106
- 3.3.10代理111
- 3.3.11DNS缓存112
- 3.3.12并行下载113
- 3.4下载网络资源115
- 3.4.1重定向115
- 3.4.2解决套接字连接限制118
- 3.4.3下载图片119
- 3.4.4抓取视频122
- 3.4.5抓取FTP122
- 3.4.6网页更新122
- 3.4.7抓取限制应对方法126
- 3.4.8URL地址提取131
- 3.4.9解析URL地址134
- 3.4.10归一化135
- 3.4.11增量采集135
- 3.4.12iframe136
- 3.4.13抓取JavaScript动态页面137
- 3.4.14抓取即时信息141
- 3.4.15抓取暗网141
- 3.5PhantomJS144
- 3.6Selenium145
- 3.7信息过滤146
- 3.7.1匹配算法147
- 3.7.2分布式过滤153
- 3.8采集新闻153
- 3.8.1网页过滤器154
- 3.8.2列表页159
- 3.8.3用机器学习的方法抓取新闻160
- 3.8.4自动查找目录页161
- 3.8.5详细页162
- 3.8.6增量采集164
- 3.8.7处理图片164
- 3.9遍历信息164
- 3.10并行抓取165
- 3.10.1多线程爬虫165
- 3.10.2垂直搜索的多线程爬虫168
- 3.10.3异步IO172
- 3.11分布式爬虫176
- 3.11.1JGroups176
- 3.11.2监控179
- 3.12增量抓取180
- 3.13管理界面180
- 3.14本章小结181
- 3.1下载网页的基本方法69
- 第4章数据存储182
- 4.1存储提取内容182
- 4.1.1SQLite183
- 4.1.2Access数据库185
- 4.1.3MySQL186
- 4.1.4写入维基187
- 4.2HBase187
- 4.3Web图189
- 4.4本章小结193
- 4.1存储提取内容182
- 第5章信息提取194
- 5.1从文本提取信息194
- 5.2从HTML文件中提取文本195
- 5.2.1字符集编码195
- 5.2.2识别网页的编码198
- 5.2.3网页编码转换为字符串编码201
- 5.2.4使用正则表达式提取数据202
- 5.2.5结构化信息提取206
- 5.2.6表格209
- 5.2.7网页的DOM结构210
- 5.2.8使用Jsoup提取信息211
- 5.2.9使用XPath提取信息217
- 5.2.10HTMLUnit提取数据219
- 5.2.11网页结构相似度计算220
- 5.2.12提取标题222
- 5.2.13提取日期224
- 5.2.14提取模板225
- 5.2.15提取RDF信息227
- 5.2.16网页解析器原理227
- 5.3RSS229
- 5.3.1Jsoup解析RSS230
- 5.3.2ROME231
- 5.3.3抓取流程231
- 5.4网页去噪233
- 5.4.1NekoHTML234
- 5.4.2Jsoup238
- 5.4.3提取正文240
- 5.5从非HTML文件中提取文本241
- 5.5.1PDF文件242
- 5.5.2Word文件245
- 5.5.3Rtf文件247
- 5.5.4Excel文件253
- 5.5.5PowerPoint文件254
- 5.6提取标题254
- 5.6.1提取标题的一般方法255
- 5.6.2从PDF文件中提取标题259
- 5.6.3从Word文件中提取标题261
- 5.6.4从Rtf文件中提取标题261
- 5.6.5从Excel文件中提取标题267
- 5.6.6从PowerPoint文件中提取标题270
- 5.7图像的OCR识别270
- 5.7.1读入图像271
- 5.7.2准备训练集272
- 5.7.3图像二值化274
- 5.7.4切分图像279
- 5.7.5SVM分类283
- 5.7.6识别汉字287
- 5.7.7训练OCR289
- 5.7.8检测行290
- 5.7.9识别验证码291
- 5.7.10JavaOCR292
- 5.8提取地域信息292
- 5.8.1IP地址293
- 5.8.2手机315
- 5.9提取新闻316
- 5.10流媒体内容提取317
- 5.10.1音频流内容提取317
- 5.10.2视频流内容提取321
- 5.11内容纠错322
- 5.11.1模糊匹配问题325
- 5.11.2英文拼写检查331
- 5.11.3中文拼写检查333
- 5.12术语336
- 5.13本章小结336
- 第6章Crawler4j338
- 6.1使用Crawler4j338
- 6.1.1大众点评339
- 6.1.2日志342
- 6.2crawler4j原理342
- 6.2.1代码分析343
- 6.2.2使用BerkeleyDB344
- 6.2.3缩短URL地址347
- 6.2.4网页编码349
- 6.2.5并发349
- 6.3本章小结352
- 第7章网页排重353
- 7.1语义指纹354
- 7.2SimHash357
- 7.3分布式文档排重367
- 7.4本章小结369
- 第8章网页分类370
- 8.1关键词加权法371
- 8.2机器学习的分类方法378
- 8.2.1特征提取380
- 8.2.2朴素贝叶斯384
- 8.2.3支持向量机393
- 8.2.4多级分类401
- 8.2.5网页分类403
- 8.3本章小结403
- 第9章案例分析404
- 9.1金融爬虫404
- 9.1.1中国能源政策数据404
- 9.1.2世界原油现货交易和期货交易数据405
- 9.1.3股票数据405
- 9.1.4从PDF文件中提取表格408
- 9.2商品搜索408
- 9.2.1遍历商品410
- 9.2.2使用HttpClient415
- 9.2.3提取价格416
- 9.2.4水印419
- 9.2.5数据导入ECShop420
- 9.2.6采集淘宝423
- 9.3自动化行业采集424
- 9.4社会化信息采集424
- 9.5微博爬虫424
- 9.6微信爬虫426
- 9.7海关数据426
- 9.8医药数据427
- 9.9本章小结429
- 6.1使用Crawler4j338
- 后记430
注:本文是学习记录总结日志,并非个人大脑产物!
原书:《网络爬虫全解析:技术、原理与实践》罗刚 著