本书介绍了如何开发网络爬虫。内容主要包括开发网络爬虫所需要的Java语法基础和网络爬虫的工作原理,如何使用开源组件HttpClient和爬虫框架Crawler4j抓取网页信息,以及针对抓取到的文本进行有效信息的提取。为了扩展抓取能力,本书介绍了实现分布式网络爬虫的关键技术。
另外,本书介绍了从图像和语音等多媒体格式文件中提取文本信息,以及如何使用大数据技术存储抓取到的信息。最后,以实战为例,介绍了如何抓取微信和微博,以及在电商、医药、金融等领域的案例应用。其中,电商领域的应用介绍了使用网络爬虫抓取商品信息入库到网上商店的数据库表。医药领域的案例介绍了抓取PubMed医药论文库。金融领域的案例介绍了抓取股票信息,以及从年报PDF文档中提取表格等。
本书适用于对开发信息采集软件感兴趣的自学者。也可以供有Java或程序设计基础的开发人员参考。
相比用Python写网络爬虫,Java更有后发优势
运行在服务器端的网络爬虫,更应该用Java开发
本书结合作者多年网络爬虫开发经验
全面系统讲解了网络爬虫相关技术并以Java实现
通俗易懂、代码清晰、案例丰富实用
一本书全面掌握网络爬虫开发
前 言
现代社会,有效信息对人来说就像氧气一样不可或缺。互联网让有效信息的收集工作变得更容易。当你在网上冲浪时,网络爬虫也在网络中穿梭,自动收集互联网上有用的信息。
自动收集和筛选信息的网络爬虫让有效信息的流动性增强,让我们更加高效地获取信息。随着越来越多的信息显现于网络,网络爬虫也越来越有用。
各行业都离不开对信息的采集和加工处理。例如,农业需要抓取气象数据、农产品行情数据等实现精准农业。机械行业需要抓取零件、图纸信息作为设计参考。医药行业需要抓取一些疾病的治疗方法信息。金融行业需要抓取上市公司基本面和技术面等相关信息作为股市涨跌的参考,例如,太钢生产出圆珠笔头,导致它的股票“太钢不锈”上涨。此外,金融行业也需要抓取股民对市场的参与度,作为市场大势判断的依据。
每个人都可以用网络爬虫技术获得更好的生存策略,避免一些糟糕的情况出现,让自己生活得更加幸福和快乐。例如,网络爬虫可以收集到二甲双胍等可能抗衰老的药物,从而让人生活得更加健康。
本书的很多内容来源于搜索引擎、自然语言处理、金融等领域的项目开发和教学实践。感谢开源软件的开发者们,他们无私的工作丰富了本书的内容。
本书从开发网络爬虫所需要的Java语法开始讲解,然后介绍基本的爬虫原理。通过介绍优先级队列、宽度优先搜索等内容,引领读者入门,之后根据当前风起云涌的云计算热潮,重点讲述了云计算的相关内容及其在爬虫中的应用,以及信息抽取、链接分析等内容。接下来介绍了有关爬虫的Web数据挖掘等内容。为了让读者更深入地了解爬虫的实际应用,最后一章是案例分析。本书相关的代码在读者QQ群(294737705)的共享文件中可以找到。
本书适合需要具体实现网络爬虫的程序员使用,对于信息检索等相关领域的研究人员也有一定的参考价值,同时猎兔搜索技术团队已经开发出以本书为基础的专门培训课程和商业软件。目前的一些网络爬虫软件仍有很多功能有待完善,作者真诚地希望通过本书把读者带入网络爬虫开发的大门并认识更多的朋友。
感谢早期合著者、合作伙伴、员工、学员、家人的支持,他们给我们提供了良好的工作基础,这是一个持久可用的工作基础。在将来,希望我们的网络爬虫代码和技术能够像植物一样快速生长。
参与本书编写的还有崔智杰、石天盈、张继红、张进威、刘宇、何淑琴、任通通、高丹丹、徐友峰、孙宽,在此一并表示感谢。
罗 刚
2017年2月
代码不全啊,怎么写
这书配得上垃圾二字,这种作者还是建议别写书了
这书配得上垃圾二字,这种作者还是建议别写书了
这书配得上垃圾二字,这种作者还是建议别写书了
的确,代码都是一些零零碎碎的片段,并不系统完整