新書推薦:
《
女人的胜利
》
售價:HK$
55.9
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:HK$
266.6
《
500万次倾听:陪伤心的人聊聊
》
售價:HK$
53.8
《
英国商业500年(见证大国崛起与企业兴衰,启迪未来商业智慧。)
》
售價:HK$
80.6
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:HK$
87.4
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:HK$
66.1
《
周易
》
售價:HK$
44.6
《
东南亚的传统与发展
》
售價:HK$
67.2
|
編輯推薦: |
《网络数据采集技术:Java网络爬虫实战》是国内上很少见的讲解Java语言(而不是Python语言)网络爬虫的书籍。与Python语言相比,使用Java语言进行网络数据采集,具有采集效率更高、框架性能更好、敏捷易用等优点,而且针对大型搜索引擎系统的数据采集工作更多使用Java语言,故本书值得读者学习。编程语言的初学者也可通过本书进一步掌握Java语言的高级编程技能。
|
內容簡介: |
本书以Java为开发语言,系统地介绍了网络爬虫的理论知识和基础工具,包括网络爬虫涉及的Java基础知识、HTTP协议基础与网络抓包、网页内容获取、网页内容解析和网络爬虫数据存储等。本书选取典型网站,采用案例讲解的方式介绍网络爬虫中涉及的问题,以增强读者的动手实践能力。同时,本书还介绍了3种Java网络爬虫开源框架,即Crawler4j、WebCollector和WebMagic。本书适用于Java网络爬虫开发的初学者和进阶者;也可作为网络爬虫课程教学的参考书,供高等院校文本挖掘、自然语言处理、大数据商务分析等相关学科的大学生和研究生参考使用;也可供企业网络爬虫开发人员参考使用。
|
關於作者: |
钱洋合肥工业大学管理科学与工程系博士、CSDN博客专家。曾作为技术人员参与多个横向、纵向学术课题,负责数据采集系统的设计与开发工作。曾在CSDN上撰写多篇关于数据采集、自然语言处理、编程语言等领域的原创博客。姜元春合肥工业大学教授、博士生导师。长期从事电子商务、商务智能、数据采集与挖掘等方面的理论研究与教学工作。先后主持过国家自然科学基金优秀青年科学基金项目、国家自然科学基金重大研究计划培育项目、国家自然科学基金青年科学基金项目、教育部人文社科青年基金项目、阿里巴巴青年学者支持计划、CCF-腾讯犀牛鸟基金项目等课题的研究工作。
|
目錄:
|
目录
第1 章 网络爬虫概述与原理 ............................................................................ 1
1.1 网络爬虫简介 ............................................................................................. 1
1.2 网络爬虫分类 ............................................................................................. 2
1.3 网络爬虫流程 ............................................................................................. 4
1.4 网络爬虫的采集策略 ................................................................................. 5
1.5 学习网络爬虫的建议 ................................................................................. 5
1.6 本章小结 ..................................................................................................... 6
第2 章 网络爬虫涉及的Java 基础知识 ........................................................... 7
2.1 开发环境的搭建 ......................................................................................... 7
2.1.1 JDK 的安装及环境变量配置 .......................................................... 7
2.1.2 Eclipse 的下载 .................................................................................. 9
2.2 基本数据类型 ........................................................................................... 10
2.3 数组 ........................................................................................................... 11
2.4 条件判断与循环 ....................................................................................... 12
2.5 集合 ........................................................................................................... 15
2.5.1 List 和Set 集合 .............................................................................. 15
2.5.2 Map 集合 ........................................................................................ 16
2.5.3 Queue 集合 ..................................................................................... 17
2.6 对象与类 ................................................................................................... 19
2.7 String 类 ..................................................................................................... 21
2.8 日期和时间处理 ....................................................................................... 23
2.9 正则表达式 ............................................................................................... 26
2.10 Maven 工程的创建 ................................................................................. 29
2.11 log4j 的使用 ............................................................................................ 33
2.12 本章小结 ................................................................................................. 40
第3 章 HTTP 协议基础与网络抓包 ............................................................... 41
3.1 HTTP 协议简介 ........................................................................................ 41
3.2 URL ........................................................................................................... 42
3.3 报文 ........................................................................................................... 44
3.4 HTTP 请求方法 ........................................................................................ 46
3.5 HTTP 状态码 ............................................................................................ 46
3.5.1 状态码2XX .................................................................................... 47
3.5.2 状态码3XX .................................................................................... 47
3.5.3 状态码4XX .................................................................................... 48
3.5.4 状态码5XX .................................................................................... 48
3.6 HTTP 信息头 ............................................................................................ 48
3.6.1 通用头 ............................................................................................ 49
3.6.2 请求头 ............................................................................................ 52
3.6.3 响应头 ............................................................................................ 55
3.6.4 实体头 ............................................................................................ 56
3.7 HTTP 响应正文 ........................................................................................ 57
3.7.1 HTML ............................................................................................. 58
3.7.2 XML ............................................................................................... 60
3.7.3 JSON ............................................................................................... 61
3.8 网络抓包 ................................................................................................... 64
3.8.1 简介 ................................................................................................ 64
3.8.2 使用情境 ........................................................................................ 65
3.8.3 浏览器实现网络抓包 ..................................................................... 65
3.8.4 其他网络抓包工具推荐 ................................................................. 70
3.9 本章小结 ................................................................................................... 70
第4 章 网页内容获取 .................................................................................... 71
4.1 Jsoup 的使用 ............................................................................................. 71
4.1.1 jar 包的下载 ................................................................................... 71
4.1.2 请求URL ....................................................................................... 72
4.1.3 设置头信息 .................................................................................... 75
4.1.4 提交请求参数 ................................................................................ 78
4.1.5 超时设置 ........................................................................................ 80
4.1.6 代理服务器的使用 ......................................................................... 81
4.1.7 响应转输出流(图片、PDF 等的下载)..................................... 83
4.1.8 HTTPS 请求认证 ........................................................................... 85
4.1.9 大文件内容获取问题 ..................................................................... 89
4.2 HttpClient 的使用 ...................................................................................... 91
4.2.1 jar 包的下载 ................................................................................... 91
4.2.2 请求URL ....................................................................................... 92
4.2.3 EntityUtils 类 .................................................................................. 97
4.2.4 设置头信息 .................................................................................... 98
4.2.5 POST 提交表单 ............................................................................ 100
4.2.6 超时设置 ...................................................................................... 103
4.2.7 代理服务器的使用 ....................................................................... 105
4.2.8 文件下载 ...................................................................................... 106
4.2.9 HTTPS 请求认证 ......................................................................... 108
4.2.10 请求重试 .................................................
|
內容試閱:
|
前言
近几年,网络空间大数据(Big Data)已成为各领域研究的热门话题。在企业应用方面,天猫利用海量的用户数据挖掘年轻消费者偏好,并将用户偏好反馈给手机研发部门,将其用于手机设计;汽车之家利用平台中用户生成的大数据对用户进行画像,在此基础上开展个性化营销。在学术界,很多领域的学者针对大数据衍生出的新问题开展学术研究,如大数据驱动的客户洞察、大数据驱动的个性化推荐、大数据驱动的管理决策等。
在网络大数据环境下,数据采集尤为重要。因此,很多企业都提供了(高级)数据采集工程师的职位。对于很多在校大学生而言,尤其是硕士生和博士生,网络数据采集是一项必备的技能。
在编写本书之前,笔者主要从事数据采集系统的设计与开发工作。在CSDN 社区上,笔者撰写过一系列介绍Java 网络爬虫的博客,这些博客为笔者的主页带来了不少访问量;同时,也有许多博客读者通过邮件的方式,向笔者咨询网络爬虫相关的工具使用、程序调试等问题。为此,笔者对Java 网络爬虫所涉及的知识与技术进行了系统的梳理,并打算编写一本关于Java 网络爬虫的书籍。在写作过程中,笔者与具有丰富网络爬虫教学经验的姜元春教授就写作逻辑、介绍的知识点、使用的案例等多方面的内容进行了多次讨论。本书的内容更加注重爬虫理论、开发基础与实战演练。基于对本书爬虫案例的研读,读者可以快速开发自己需要的其他网络爬虫程序。
本书的内容
本书分为9 章,具体内容如下所示。
第1 章至第3 章:这3 章重点介绍与网络爬虫开发相关的基础知识,其中包括网络爬虫的原理、Java 基础知识和HTTP 协议等内容。
第4 章至第6 章:这3 章分别从网页内容获取、网页内容解析和网络爬虫数据存储3 个方面介绍网络爬虫开发过程中所涉及的一系列技术。在这3 章中,涉及很多开源工具的使用,如Jsoup、HttpClient、HtmlCleaner、Fastjson、POI3 等。
第 7 章:本章利用具体的实战案例,讲解网络爬虫开发的流程。通过对本章的学习,读者可以轻松开发Java 网络爬虫。
第8 章:针对一些复杂的页面,如动态加载的页面(执行JavaScript 脚本),本章介绍了一款实用的工具Selenium WebDriver。
第9 章:本章重点介绍了3 种比较流行的Java 网络爬虫开源框架,即Crawler4j、WebCollector 和WebMagic。读者可根据数据采集需求,自行开发支持多线程采集、断点采集、代理切换等功能的网络爬虫项目。
本书的特色
注重基础:俗话说,基础不牢,地动山摇。本书从可读性和实用性出发,重点介绍了网络爬虫中涉及的基础知识。
系统性:本书系统地梳理了网络爬虫的逻辑和开发网络爬虫需要掌握的技术。对网络爬虫初学者和进阶者而言,学习这些内容将有利于解决数据采集过程中遇到的各种问题。
详细的案例讲解:本书选取了较为典型的网站,讲解网络爬虫经常遇到的问题,如HTTPS 请求认证问题、大文件内容获取问题、模拟登录问题、不同格式文件(文本、图片和PDF 等)的存储问题、定时数据采集问题等。
开源框架: 本书介绍了3 种Java 网络爬虫开源框架,即Crawler4j、WebCollector和WebMagic。通过对这3 种网络爬虫开源框架的学习,读者可以轻松开发一些高性能的网络爬虫项目。
完整的代码:为便于读者学习,对于每个数据网络爬虫项目,笔者都提供了完整的代码,并且在代码中给出了清晰的注释。
适合的读者
Java 网络爬虫开发的初学者和进阶者。
科研人员,尤其是从事网络大数据驱动研究的硕士生和博士生。
开设相关课程的高等院校的师生。
企业网络爬虫开发人员。
说明
网络爬虫作为一项技术,更应该服务于社会。在使用该技术的过程中,应遵守Robots 协议(互联网行业数据抓取的道德协议)。同时,需要注意对数据所涉及的知识产权和隐私信息进行保护。另外,采集数据时,需要注意礼貌,即不频繁地请求网页,以防止给数据提供者的服务器造成不良影响。在使用所采集的数据时,需要注意是否涉及商业利益和相关法律。最后,本书中所有使用的案例皆为测试案例,仅供读者学习使用,本书中的URL 均做了处理。
基金项目
本书由国家自然科学基金重大项目课题面向大数据的商务分析与计算方法以及支撑平台研究(71490725)、国家自然科学基金重大研究计划子课题面向商务领域的大数据资源池及集成示范平台(91746302)、国家自然科学基金优秀青年基金个性化营销理论与方法(71722010)提供资助。
勘误
由于笔者的水平有限,书中难免出现一些错误及不准确之处,恳请读者批评指正。为及时更正书中不恰当的内容,笔者在CSDN 博客中创建了一个板块,读者可以将书中的问题以评论的方式进行反馈,笔者将针对这些问题进行勘误。另外,也欢迎读者通过发送电子邮件(qy20115549@126.com)的方式,反馈书稿的问题。
致谢
感谢电子工业出版社的林瑞和编辑、合肥工业大学电子商务研究所的刘业政教授和孙见山副教授等给本书提出的宝贵建议。
感谢华为的杜非、王佳佳和王锦坤师兄的帮助,是他们将我带入编程的世界。
感谢淮南师范学院的孙娜丽女士对整本书稿写作语言的梳理。
感谢合肥工业大学电子商务研究所的朱婷婷、杨露、田志强、宋颖欣、张雪、李哲、贺菲菲、叶畅、陶守正、梁瑞诚等博士参与本书内容的讨论。
最后,希望热爱网络爬虫开发的小伙伴们能够喜欢本书。
钱 洋
2019 年9 月
|
|