Python网络爬虫权威指南(第2版)

Book description

作为一种采集和理解网络上海量信息的方式,网页抓取技术变得越来越重要。而编写简单的自动化程序(网络爬虫),一次就可以自动抓取上百万个网页中的信息,实现高效的数据采集和处理,满足大量数据需求应用场景。

本书采用简洁强大的Python语言,全面介绍网页抓取技术,解答诸多常见问题,是掌握从数据爬取到数据清洗全流程的系统实践指南。书中内容分为两部分。第一部分深入讲解网页抓取的基础知识,重点介绍BeautifulSoup、Scrapy等Python库的应用。第二部分介绍网络爬虫编写相关的主题,以及各种数据抓取工具和应用程序,帮你深入互联网的每个角落,分析原始数据,获取数据背后的故事,轻松解决遇到的各类网页抓取问题。第2版全面更新,新增网络爬虫模型、Scrapy和并行网页抓取相关章节。

  • 解析复杂的HTML页面
  • 使用Scrapy框架开发爬虫
  • 学习存储数据的方法
  • 从文档中读取和提取数据
  • 清洗格式糟糕的数据
  • 自然语言处理
  • 通过表单和登录窗口抓取数据
  • 抓取JavaScript及利用API抓取数据
  • 图像识别与文字处理
  • 避免抓取陷阱和反爬虫策略
  • 使用爬虫测试网站

Table of contents

  1. 封面
  2. 扉页
  3. 版权
  4. 版权声明
  5. O’Reilly Media, Inc.介绍
  6. 目录 (1/2)
  7. 目录 (2/2)
  8. 前言
    1. 什么是网页抓取
    2. 为什么要做网页抓取
    3. 关于本书
    4. 排版约定
    5. 使用代码示例
    6. O’Reilly Safari
    7. 联系我们
    8. 致谢
    9. 电子书
  9. 第一部分 创建爬虫
    1. 第1章 初见网络爬虫
      1. 1.1 网络连接
      2. 1.2 BeautifulSoup简介 (1/2)
      3. 1.2 BeautifulSoup简介 (2/2)
        1. 1.2.1 安装BeautifulSoup
        2. 1.2.2 运行BeautifulSoup
        3. 1.2.3 可靠的网络连接以及异常的处理
    2. 第2章 复杂HTML解析
      1. 2.1 不是一直都要用锤子
      2. 2.2 再端一碗BeautifulSoup (1/2)
      3. 2.2 再端一碗BeautifulSoup (2/2)
        1. 2.2.1 BeautifulSoup的find()和find_all()
        2. 2.2.2 其他BeautifulSoup对象
        3. 2.2.3 导航树
      4. 2.3 正则表达式
      5. 2.4 正则表达式和BeautifulSoup
      6. 2.5 获取属性
      7. 2.6 Lambda表达式
    3. 第3章 编写网络爬虫
      1. 3.1 遍历单个域名
      2. 3.2 抓取整个网站
      3. 3.3 在互联网上抓取
    4. 第4章 网络爬虫模型
      1. 4.1 规划和定义对象
      2. 4.2 处理不同的网站布局
      3. 4.3 结构化爬虫 (1/2)
      4. 4.3 结构化爬虫 (2/2)
        1. 4.3.1 通过搜索抓取网站
        2. 4.3.2 通过链接抓取网站
        3. 4.3.3 抓取多种类型的页面
      5. 4.4 关于网络爬虫模型的思考
    5. 第5章 Scrapy
      1. 5.1 安装Scrapy
      2. 5.2 创建一个简易爬虫
      3. 5.3 带规则的抓取
      4. 5.4 创建item
      5. 5.5 输出item
      6. 5.6 item管线组件
      7. 5.7 Scrapy日志管理
      8. 5.8 更多资源
    6. 第6章 存储数据
      1. 6.1 媒体文件
      2. 6.2 把数据存储到CSV
      3. 6.3 MySQL (1/3)
      4. 6.3 MySQL (2/3)
      5. 6.3 MySQL (3/3)
        1. 6.3.1 安装MySQL
        2. 6.3.2 基本命令
        3. 6.3.3 与Python整合
        4. 6.3.4 数据库技术与最佳实践
        5. 6.3.5 MySQL里的“六度空间游戏”
      6. 6.4 Email
  10. 第二部分 高级网页抓取
    1. 第7章 读取文档
      1. 7.1 文档编码
      2. 7.2 纯文本
      3. 7.3 CSV
      4. 7.4 PDF
      5. 7.5 微软Word和.docx
    2. 第8章 数据清洗
      1. 8.1 编写代码清洗数据
      2. 8.2 数据存储后再清洗
    3. 第9章 自然语言处理
      1. 9.1 概括数据
      2. 9.2 马尔可夫模型
      3. 9.3 自然语言工具包 (1/2)
      4. 9.3 自然语言工具包 (2/2)
        1. 9.3.1 安装与设置
        2. 9.3.2 用NLTK做统计分析
        3. 9.3.3 用NLTK做词性分析
      5. 9.4 其他资源
    4. 第10章 穿越网页表单与登录窗口进行抓取
      1. 10.1 Python Requests库
      2. 10.2 提交一个基本表单
      3. 10.3 单选按钮、复选框和其他输入
      4. 10.4 提交文件和图像
      5. 10.5 处理登录和cookie
      6. 10.6 其他表单问题
    5. 第11章 抓取JavaScript
      1. 11.1 JavaScript简介
      2. 11.2 Ajax和动态HTML (1/2)
      3. 11.2 Ajax和动态HTML (2/2)
        1. 11.2.1 在Python中用Selenium执行JavaScript
        2. 11.2.2 Selenium的其他webdriver
      4. 11.3 处理重定向
      5. 11.4 关于JavaScript的最后提醒
    6. 第12章 利用API抓取数据
      1. 12.1 API概述
        1. 12.1.1 HTTP方法和API
        2. 12.1.2 更多关于API响应的介绍
      2. 12.2 解析JSON数据
      3. 12.3 无文档的API (1/2)
      4. 12.3 无文档的API (2/2)
        1. 12.3.1 查找无文档的API
        2. 12.3.2 记录未被记录的API
        3. 12.3.3 自动查找和记录API
      5. 12.4 API与其他数据源结合
      6. 12.5 再说一点API
    7. 第13章 图像识别与文字处理
      1. 13.1 OCR库概述
        1. 13.1.1 Pillow
        2. 13.1.2 Tesseract
        3. 13.1.3 NumPy
      2. 13.2 处理格式规范的文字 (1/2)
      3. 13.2 处理格式规范的文字 (2/2)
        1. 13.2.1 自动调整图像
        2. 13.2.2 从网站图片中抓取文字
      4. 13.3 读取验证码与训练Tesseract
      5. 13.4 获取验证码并提交答案
    8. 第14章 避开抓取陷阱
      1. 14.1 道德规范
      2. 14.2 让网络机器人看着像人类用户
        1. 14.2.1 修改请求头
        2. 14.2.2 用JavaScript处理cookie
        3. 14.2.3 时间就是一切
      3. 14.3 常见表单安全措施
        1. 14.3.1 隐含输入字段值
        2. 14.3.2 避免蜜罐
      4. 14.4 问题检查表
    9. 第15章 用爬虫测试网站
      1. 15.1 测试简介
      2. 15.2 Python单元测试
      3. 15.3 Selenium单元测试
      4. 15.4 单元测试与Selenium单元测试的选择
    10. 第16章 并行网页抓取
      1. 16.1 进程与线程
      2. 16.2 多线程抓取 (1/2)
      3. 16.2 多线程抓取 (2/2)
        1. 16.2.1 竞争条件与队列
        2. 16.2.2 threading模块
      4. 16.3 多进程抓取
        1. 16.3.1 多进程抓取
        2. 16.3.2 进程间通信
      5. 16.4 多进程抓取的另一种方法
    11. 第17章 远程抓取
      1. 17.1 为什么要用远程服务器
        1. 17.1.1 避免IP地址被封杀
        2. 17.1.2 移植性与扩展性
      2. 17.2 Tor代理服务器
      3. 17.3 远程主机
        1. 17.3.1 从网站主机运行
        2. 17.3.2 从云主机运行
      4. 17.4 其他资源
    12. 第18章 网页抓取的法律与道德约束
      1. 18.1 商标、版权、专利
      2. 18.2 侵害动产
      3. 18.3 计算机欺诈与滥用法
      4. 18.4 robots.txt和服务协议
      5. 18.5 3个网络爬虫
        1. 18.5.1 eBay起诉Bidder’s Edge侵害其动产
        2. 18.5.2 美国政府起诉Auernheimer与《计算机欺诈与滥用法》
        3. 18.5.3 Field起诉Google:版权和robots.txt
      6. 18.6 勇往直前
  11. 关于作者
  12. 关于封面

Product information

  • Title: Python网络爬虫权威指南(第2版)
  • Author(s): Ryan Mitchell
  • Release date: April 2019
  • Publisher(s): Posts & Telecom Press
  • ISBN: 9787115509260

You might also like

book

金融人工智能:用Python实现AI量化交易

by Yves Hilpisch

人工智能和机器学习的广泛应用给当今的许多行业带来了根本性的变革。在金融领域,人工智能技术也已锋芒初露。通过阅读本书,你将了解如何利用神经网络和强化学习等方法,对金融市场的走势做出预测。 作者伊夫·希尔皮斯科博士基于多年开发、回测和部署人工智能算法交易策略的实战经验,展示了将人工智能算法应用于金融场景的实用方法。本书包含大量Python示例,有助于你边学边练,轻松复现书中的所有结果。 学习人工智能的主要概念和算法,并了解通用人工智能和超级智能 理解机器学习和数据驱动的金融学将如何改变金融理论和实践 运用神经网络和强化学习等方法,发掘金融市场的统计失效现象 学习向量化回测和算法交易,并掌握人工智能算法交易策略的执行与部署 展望金融人工智能的未来,涉及基于人工智能的竞争和金融奇点

book

基于Python的智能文本分析

by Benjamin Bengfort, Rebecca Bilbro, Tony Ojeda

从新闻、讲话,到社交媒体上非正式的聊天,自然语言是最丰富、且尚未充分利用的数据源之一。不但数据源源不断,在使用环境中还在不断调整、变化;还包含了很多传统数据源未能传达的信息。 打开自然语言宝藏的钥匙,就是基于文本分析的创造性应用。这本 实战指南介绍了从数据科学家角度如何建立语言感知产品并有效应 用机器学习。 您将学到如何用Python实现健壮、可重复和可扩展的文本分析,包括上下文特征和语言特征工程、向量化、分类、主题建模、实体解析、图分析和可视化操作。在本书的最后,您将获得解决众多复杂现实问题的实用方法。 预处理并将文本向量化成高维特征表示。 执行文档分类和主题建模。 通过可视化诊断指导模型选择过程。 提取关键短语、命名实体和图结构,实现文本数据推断。 建立对话框架,实现聊天机器人和语言驱动交互。 用Spark扩展处理能力,用神经网络实现对更复杂模型的支持。

book

面向数据科学家的实用统计学

by Peter Bruce, Andrew Bruce

统计学方法是数据科学的重要组成部分,但极少有数据科学家接受过正规的统计学教育或培训,而关于统计学基础的课程和教材也很少从数据科学的角度进行讲解。本书专门从数据科学的角度阐释重要且实用的统计学概念,重点介绍如何将各种统计学方法应用于数据科学。 为什么探索性数据分析是数据科学关键的第一步 随机抽样如何降低偏差、生成高质量数据集 实验设计原则如何针对问题生成确定性答案 如何使用回归方法估计结果并检测异常 用于预测记录所属类别的主要分类方法 从数据中“学习”的统计机器学习方法 从未标记数据中提取有意义信息的无监督学习方法

book

Python数据处理

by Jacqueline Kazil, Katharine Jarmul

用传统的电子表格来处理数据不仅效率低下,而且无法处理某些格式的数据,对于混乱或庞大的数据集更是束手无策。本书将教你如何利用语法简单、容易上手的Python轻松处理数据。作者通过循序渐进的练习,详细介绍如何有效地获取、清洗、分析与呈现数据,如何将数据处理过程自动化,如何安排文件编辑与清洗任务,如何处理更大的数据集,以及如何利用获取的数据来创作引人入胜的故事。学完本书,你的数据处理和分析能力将更上一层楼。 快速了解Python基本语法、数据类型和语言概念 概述数据的获取与存储方式 清洗数据并格式化,以消除数据集中的重复值与错误 学习何时对数据进行标准化,何时对数据清理进行测试并将其脚本化 使用Scrapy写网络爬虫 利用新的Python库和技术对数据集进行探索与分析 使用Python解决方案将整个数据处理过程自动化