前言 Preface 当今社会已经进入大数据时代,大数据与我们的工作、学习息息相关,深刻影响着生活的方方面面。大数据技术主要涉及数据采集、数据清洗、数据存储、数据分析与挖掘、数据可视化等多个环节。数据采集是其中必不可少的基础环节,所有的大数据项目都要从数据采集开始。本书正是基于此编写而成。 本书在内容编写上采用“基础知识”+“代码示例”+“应用案例”的模式,内容涵盖了互联网数据采集中最主要的知识点,通过真实案例的使用场景和实现代码,帮助读者举一反三,从而将技术应用到实际工作中。 本书以 Windows系统的 jupyter notebook作为主要开发工具,对互联网数据采集技术进行讲解。全书共 7个项目,各项目主要内容如下。 项目 1主要介绍互联网数据采集的入门知识,包括数据采集的概念和用途、常用的采集工具与常用库、开发工具与开发环境搭建等。通过本项目的学习,读者将对互联网数据采集的技术与应用建立初步的认识。 项目 2通过一个入门级的案例,介绍了互联网数据采集的基本流程。通过本项目的学习,读者可以掌握通过 Python请求数据、解析数据、提取关键数据、存储数据的基本知识。 项目 3通过一个进阶的案例,详细介绍了在没有给出官方开放 API的情况下,如何通过抓包工具获取 XHR请求地址,并详细介绍了 json数据解析的小技巧。通过本项目的学习,读者可以掌握 Chrome抓包工具的使用与技巧,以及 json解析。 项目 4主要介绍了通过 Beautifulsoup库对 HTML进行解析,然后通过 CSS选择器定位数据,提取数据的属性与文本。通过本项目的学习,读者可以掌握 HTML文本解析与采集的方法,了解如何使用正则表达式提取数据,掌握二进制(图片、视频、音频)数据的下载方法及文本采集的技巧。 项目 5重点讲解了 API请求参数的附加,通过 Key获取权限,多城市数据的合并分析。通过本项目的学习,读者可以掌握批量获取数据的整理与合并技巧。 项目 6重点学习了如何通过 Python的 pymysql库对 MySQL进行读写,结合 Pandas库对读取到的数据进行合并,以及 merge方法合并和 concat方法合并。 项目 7是对半结构化数据进行处理的最佳实践,通过简洁但功能强大的代码实现真正的数据高效处理。本项目重点考查读者对全书工具与知识点的灵活应用。 本书以基础、实用为原则,知识点基本覆盖“1+X职业技能等级证书(数据采集)”的要求。数据采集需要读者掌握的基础知识非常广泛,但本书对读者要求并不高,读者仅需对 Python、MySQL等知识有基础的了解,即可轻松完成书中的案例与代码。 本书由北京市昌平职业学校的周林娥担任主编,方荣卫、王钰坤担任副主编。周林娥负责整体结构设计和全书统稿工作。参加编写工作的还有北京市昌平职业学校的郭英杰和陆少雄。本书的项目 1、项目 2、项目 5和项目 6由周林娥和方荣卫编写,项目 3和项目 7由王钰坤编写,项目 4由郭英杰和陆少雄编写。杭州新华三集团产教方案规划设计院院长于鹏、联想教育科技(北京)有限公司产品总监鲁维、百度科技有限公司产品经理陈灿和北京信息职业技术学院人工智能学院教学院长马东波在本书编写的过程中,提供了大量的参考案例,对本书的结构和内容提出了宝贵的建议,在此一并表示感谢。 由于编者的水平和能力有限,书中难免有疏漏和欠缺的地方,敬请广大读者提出宝贵的意见。 编者 2022年 6月