产品特色
        内容简介
     《(套装) 从Python小白到爬虫高手》是作者在Python教学中学生在课程上遇到的概念、实战、应用等问题的经验总结。 
  《(套装) 从Python小白到爬虫高手》基于Python 3.5编写,介绍了Python 3.0到3.5的实用特性。本书用简短精巧的范例程序贯穿全书,以学习笔记的写作方式进行编写,让读者在Python语言的交互环境中直接动手实战和体验,通过“实战”来掌握Python语言的核心知识和实战用法,并且特意标注了常用范例和重点范例,让读者可以根据自己的时间安排进行取舍。 
  本书既适合初学者学习,又能帮助有一定基础的程序员提升技能,还可作为相关培训的教材。       
前言/序言
     计算机技术飞速发展,人们对计算机使用技能的要求也越来越高。在编写软件时,大家既希望有超高的效率,又希望这门语言简单易用。这种鱼与熊掌皆得的要求的确很高,Python编程语言恰好符合这么苛刻的要求。 
  Python的执行效率仅比效率之王C略差一筹,在简单易用方面Python也名列三甲。可以说Python在效率和简单之间达到了平衡。另外,Python还是一门胶水语言,可以将其他编程语言的优点融合在一起,达到1+1>2的效果。这也是Python如今使用人数越来越多的原因。 
  Python语言发展迅速,在各行各业都发挥独特的作用。在各大企业、学校、机关都运行着Python明星程序。但就个人而言,运用Python最多的还是网络爬虫(这里的爬虫仅涉及从网页提取数据,不涉及深度、广度算法爬虫搜索)。在网络上经常更新的数据,无须每次都打开网页浏览,使用爬虫程序,一键获取数据,下载保存后分析。考虑到Python爬虫在网络上的资料虽多,但大多都不成系统,难以提供系统有效的学习。因此笔者抛砖引玉,编写了这本有关Python网络爬虫的书,以供读者学习参考。 
  Python简单易学,Python爬虫也不复杂。只需要了解了Python的基本操作即可自行编写。本书中介绍了几种不同类型的Python爬虫,可以针对不同情况的站点进行数据收集。 
  本书特色 
  ? 附带全部源代码 
  为了便于读者理解本书内容,作者已将全部的源代码上传到网络,供读者下载使用。读者通过代码学习开发思路,精简优化代码。 
  ? 涵盖了Linux&Windows;上模块的安装配置 
  本书包含了Python模块源的配置、模块的安装,以及常用IDE的使用。 
  ? 实战实例 
  通过常用的实例,详细说明网络爬虫的编写过程。 
  本书结构 
  本书共8章,前面4章简单地介绍了Python的基本用法和简单Python程序的编写。第5章的Scrapy爬虫框架主要针对一般无须登录的网站,在爬取大量数据时使用Scrapy会很方便。第6章的Beautiful Soup爬虫可以算作爬虫的“个人版”。Beautiful Soup爬虫主要针对一些爬取数据比较少的,结构简单的网站。第7章的Mechanize模块,主要功能是模拟浏览器。它的作用主要是针对那些需要登录验证的网站。第8章的Selenium模块,主要功能也是模拟浏览器,它的作用主要是针对JavaScript返回数据的网站。 
  本书读者与作者 
  Python网络爬虫初学者 
  数据分析与挖掘技术初学者 
  高校和培训学校相关专业的师生 
  本书由胡松涛主笔,其他参与编写的有宋士伟、张倩、彭霁、杨旺功、邹瑛、王铁民、殷龙、李春城、张兴瑜、刘祥淼、李柯泉、林龙、赵殿华、牛晓云。 
  本书代码下载 
  编  者 
  2016年11月     
				
 
				
				
					第一册:Python 基础精要与实战入门  本书是您踏入 Python 编程世界的坚实第一步。我们深知,对于初学者而言,枯燥乏味的理论往往是最大的障碍。因此,本书的设计理念是“学以致用,乐在其中”。我们不只是罗列语法,而是通过大量精心设计的、贴近实际应用场景的代码示例,引导您一步步理解 Python 的核心概念,并迅速掌握编写实用程序的能力。  第一篇:Python 的基石——核心概念与语法解析     第一章:初识 Python 的魅力。 我们将从 Python 的设计哲学出发,阐述它为何能成为当今最受欢迎的编程语言之一。您将了解到 Python 的简洁性、可读性以及其强大的生态系统,为接下来的学习之旅打下坚实的基础。我们会带领您完成第一个简单的 Python 程序——“Hello, World!”,并简要介绍 Python 的安装与开发环境搭建,让您能立即动手实践。    第二章:数据随心动——变量、数据类型与运算符。 深入理解数据的本质是编程的关键。本章将详细讲解 Python 中最基本的数据类型,包括整型、浮点型、字符串、布尔型以及列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)等复合数据结构。您将学会如何声明和使用变量,理解不同数据类型的特性及相互转换,并掌握各种运算符(算术、比较、逻辑、赋值等)的用法,为后续的数据处理奠定基础。    第三章:流程控制的艺术——条件判断与循环。 程序并非一成不变的指令序列,它需要根据不同的情况做出响应,并能重复执行某些任务。本章将聚焦于 Python 的流程控制语句,包括 `if-elif-else` 条件判断语句,以及 `for` 和 `while` 循环。我们将通过生动的例子,演示如何利用这些工具构建具有逻辑分支和重复执行能力的程序,让您的代码“活”起来。    第四章:函数的力量——代码的模块化与复用。 随着程序规模的增长,如何组织和管理代码变得至关重要。函数是实现代码模块化和复用的核心机制。本章将详细讲解函数的定义、参数传递(位置参数、关键字参数、默认参数、可变参数)、返回值以及作用域等概念。您将学会如何将重复的代码块封装成函数,提高代码的效率和可维护性。    第五章:数据结构的进阶——列表、元组、字典与集合的深度探索。 前面已经介绍了 Python 的几种核心数据结构,本章将对它们进行更深入的挖掘。您将学习列表的切片、增删改查、排序等高级操作;理解元组的不可变性及其适用场景;掌握字典的键值对特性、查找、添加、删除等操作,以及集合的去重和集合运算。这些数据结构将是您处理和组织大量数据的得力助手。    第六章:文件操作的魔法——读写文本与二进制文件。 实际应用中,程序常常需要与文件打交道,读取配置信息,保存运行结果,或者处理大量数据。本章将教会您如何使用 Python 打开、读取、写入和关闭文件,包括文本文件和二进制文件。您将学会使用 `with open(...)` 语句来安全地管理文件资源,并了解不同文件模式的含义。    第七章:异常处理的智慧——优雅地应对错误。 错误在编程中是不可避免的,如何优雅地处理这些异常,防止程序崩溃,是衡量一个程序员成熟度的重要标准。本章将介绍 Python 的异常处理机制,包括 `try-except-finally` 语句,以及如何捕获和处理特定类型的异常。您将学会编写更健壮、更具弹性的代码。    第八章:模块与包——拓展 Python 的无限可能。 Python 拥有庞大而活跃的社区,提供了海量的第三方模块和库,极大地丰富了其功能。本章将讲解如何导入和使用 Python 内置模块(如 `math`, `random`, `datetime` 等),以及如何安装和使用第三方包。您将初步体验到 Python 生态系统的强大之处。  第二篇:Python 实战入门——从零开始构建你的第一个项目  在掌握了 Python 的基础知识后,我们将进入激动人心的实战环节。本篇将带领您完成几个不同类型的小型项目,让您在实践中巩固所学,并体会编程的乐趣。     第九章:计算器的小天地。 我们将从最简单的计算器开始,学习如何接收用户输入,进行基本的四则运算,并处理可能出现的输入错误。这个项目将帮助您巩固变量、数据类型、运算符、条件判断和函数的使用。    第十章:猜数字游戏。 这是一个经典的入门级小游戏。您将学习如何生成随机数,如何使用循环来控制游戏次数,以及如何通过条件判断来给出提示,直到用户猜中为止。这个项目将加深您对循环和条件语句的理解。    第十一章:简单的文本分析器。 文本处理是 Python 的强项之一。我们将编写一个简单的程序,能够统计一段文本中单词的出现频率,找出最长或最短的单词。这个项目将让您熟练掌握字符串操作、字典的使用以及文件读取。    第十二章:待办事项列表管理器。 这个项目将帮助您学习如何使用列表来存储数据,如何实现添加、删除、标记完成等功能,并可以将待办事项保存到文件中,以便下次启动时恢复。这为后面学习更复杂的应用程序开发打下基础。    第十三章:简单的天气预报查询工具(初探)。 在本章,我们将初步接触如何使用 Python 与外部服务进行交互,通过调用一个简单的公开API(可能是一个模拟的、本地的API),获取并展示一些基础的天气信息。这为后续学习网络编程和爬虫打下概念基础。  通过完成这些项目,您将不再是只会写“Hello, World!”的“小白”,而是能够独立思考、动手解决问题的 Python 初级开发者。  第二册:Python 爬虫实战——从零构建高效数据采集系统  当您对 Python 基础有了扎实的掌握后,第二册将带您进入令人着迷的 Web 爬虫领域。我们不再满足于已有的信息,而是学会主动从互联网上获取所需的数据。本书将从爬虫的基本原理讲起,逐步深入到各种高级技术和实战应用,让您从入门到精通,能够独立构建各种规模的数据采集系统。  第一篇:爬虫的基石——原理、工具与基础技巧     第一章:认识网络世界——HTTP/HTTPS 协议与 Web 架构。 要想高效地抓取网页数据,首先需要理解网页是如何工作的。本章将详细讲解 HTTP/HTTPS 协议的请求与响应过程,包括请求方法(GET, POST等)、状态码、请求头和请求体。您将了解浏览器如何渲染网页,以及服务器是如何响应用户请求的。这些底层知识是进行网络爬虫开发的基础。    第二章:初探爬虫——requests 库的威力。 `requests` 是 Python 中最流行、最易用的 HTTP 请求库。本章将教您如何使用 `requests` 库来发送各种 HTTP 请求,获取网页的 HTML 内容。您将学习如何处理响应状态码、获取响应头,并初步体验到获取网页数据的简单与快捷。    第三章:解析网页的秘密——Beautiful Soup 库。 获取到网页的 HTML 内容只是第一步,关键在于从中提取出我们想要的信息。本章将重点介绍强大的 HTML 解析库 `Beautiful Soup`。您将学习如何使用 CSS 选择器和 XPath 表达式来定位和提取数据,如文本内容、链接、图片地址等。我们将通过实际例子,展示如何从复杂的 HTML 结构中高效地提取信息。    第四章:爬取动态网页的挑战——JavaScript 的影响与解决方案。 如今,越来越多的网页采用 JavaScript 来动态加载内容,静态的 HTML 解析方法可能无法获取全部信息。本章将介绍如何应对这种情况。您将了解到 JavaScript 的作用,并学习使用 `Selenium` 驱动浏览器来模拟用户行为,执行 JavaScript,从而获取动态加载的数据。    第五章:处理复杂的网络请求——Cookies、Session 与 Header。 在爬取过程中,网站可能会通过 Cookies、Session 来识别用户,或者通过特定的 Header 来进行访问控制。本章将讲解如何使用 `requests` 库来管理 Cookies 和 Session,以及如何自定义请求 Header,从而绕过一些简单的反爬虫机制,进行更稳定的数据采集。    第六章:数据的存储之道——从 CSV 到数据库。 抓取到的数据需要妥善保存。本章将介绍多种数据存储方式,包括将数据保存为 CSV 文件(便于表格软件处理)、JSON 文件,以及使用 Python 的 `sqlite3` 模块进行本地数据库操作。您将学会如何根据数据的类型和规模选择合适的存储方式。  第二篇:高级爬虫技术与实战应用  在掌握了基础的爬虫技术后,本篇将带领您进入更高级的领域,应对更复杂的爬取场景,并学习如何构建更健壮、更高效的爬虫系统。     第七章:面对反爬的智慧——User-Agent 轮换与代理 IP。 现实中的网站往往会采取各种反爬虫措施。本章将深入探讨如何应对常见的反爬虫策略。您将学习如何动态更换 `User-Agent` 来模拟不同的浏览器,以及如何使用代理 IP 池来隐藏真实的 IP 地址,从而提高爬虫的成功率和稳定性。    第八章:爬虫的效率提升——多线程与异步编程。 传统的单线程爬虫效率低下,容易被网站封禁。本章将讲解如何利用 Python 的多线程或多进程技术来并发执行爬取任务,大幅提升抓取速度。此外,您还将学习异步编程(如 `asyncio` 和 `aiohttp`)在网络I/O密集型任务中的优势。    第九章:深度爬取——分析网站结构与构建爬虫框架。 对于大型网站,仅仅爬取首页是远远不够的。本章将指导您如何分析网站的链接结构,找出分页、列表页、详情页之间的关系,从而设计出能够深度抓取整个网站数据的爬虫。您将学习如何构建一个可复用的、模块化的爬虫框架,以便于扩展和维护。    第十章:API 爬虫的艺术——利用公开 API 快速获取数据。 许多网站提供公开的 API 接口,这是最稳定、最高效的数据获取方式。本章将教您如何查找、理解和调用这些 API,直接获取结构化的数据,而无需解析 HTML。您将学会处理 JSON 格式的数据,并了解 API 的使用限制。    第十一章:分布式爬虫的初步探索。 当单个机器无法满足大规模数据抓取的需求时,分布式爬虫就显得尤为重要。本章将简要介绍分布式爬虫的基本概念,如爬虫调度器、URL 队列、任务分发等。虽然不深入实现复杂的分布式系统,但会为您开启理解和构建分布式爬虫的思路。    第十二章:爬虫伦理与法律——负责任的数据采集。 随着爬虫技术的普及,了解相关的伦理和法律规范至关重要。本章将提醒您在使用爬虫技术时需要注意的事项,包括尊重网站的 `robots.txt` 协议,避免过度频繁的请求,保护用户隐私,以及了解数据使用的法律边界。    第十三章:综合案例分析——从新闻网站到电商平台。 在最后一章,我们将通过几个真实世界的综合案例,将前面学到的所有技术融会贯通。例如,爬取某个新闻网站的标题、内容和发布时间;或者抓取电商网站的商品信息、价格和评论。这些案例将极大地提升您的实战能力,让您能够独立应对各种爬虫挑战。  通过这两册书的学习,您将从 Python 的零基础小白,逐步成长为一名能够独立开发高效、稳定、可扩展的 Web 爬虫的“高手”。您将掌握从基础语法到高级技巧的全面知识,并能够将这些技能应用于实际的数据采集和分析工作中。