用 Python 写网络爬虫 第2版

内容简介

畅销的 Python 网络爬虫开发实战图书全新升级版,上一版年销量近 40000 册。

针对 Python 3.6 版本编写。

Internet 上包含了许多有用的数据,其中大部分是可以免费公开访问的。但是,这些数据不容易使用,它们内嵌在网站的架构和样式中,在提取时也需要多加小心。网络爬取技术作为一种收集和理解网络上海量信息的方式,正变得越来越有用。

本书是使用 Python 3.6 的新特性来爬取网络数据的入门指南。本书讲解了从静态网站提取数据的方法,以及如何使用数据库和文件缓存技术来节省时间并管理服务器负载,然后介绍了如何使用浏览器、爬虫和并发爬虫开发一个更为复杂的爬虫。

借助于 PyQt 和 Selenium,你可以决定何时以及如何从依赖 JavaScript 的网站上爬取数据,以及更好地理解在受 CAPTCHA 保护的复杂网站上提交表单的方法。本书还讲解了使用 Python 包(比如 mechanize)进行自动化处理的方法、使用 Scrapy 库创建基于类的爬虫的方法,以及如何在真实的网站上实施所学的爬虫技巧。

本书最后还涵盖了使用爬虫对网站进行测试、远程爬取技术、图像处理以及其他相关的主题。

适读人群:Python 开发人员、搜索引擎开发人员

作者简介

Katharine Jarmul,德国柏林的一位数据科学家和 Python 支持者。她经营了一家数据科学咨询公司——Kjamistan,为不同规模的企业提供诸如数据抽取、采集以及建模的服务。她从2008年开始使用 Python 进行编程,从2010年开始使用 Python 抓取网站,并且在使用网络爬虫进行数据分析和机器学习的不同规模的初创企业中工作过。读者可以通过 Twitter(@kjam)关注她的想法以及动态。

Richard Lawson 来自澳大利亚,毕业于墨尔本大学计算机科学专业。毕业后,他创办了一家专注于网络爬虫的公司,为超过50个国家的业务提供远程工作。他精通世界语,可以使用汉语和韩语对话,并且积极投身于开源软件事业。他目前正在牛津大学攻读研究生学位,并利用业余时间研发自主无人机。

本书内容
前言

互联网包含了迄今为止最有用的数据集,并且大部分可以免费公开访问。但是,这些数据难以复用。它们被嵌入在网站的结构和样式当中,需要抽取出来才能使用。从网页中抽取数据的过程又称为网络爬虫,随着越来越多的信息被发布到网络上,网络爬虫也变得越来越有用。

本书使用的所有代码均已使用 Python 3.4+ 测试通过,并且可以在异步社区下载到。

本书内容

第1章,网络爬虫简介,介绍了什么是网络爬虫,以及如何爬取网站。

第2章,数据抓取,展示了如何使用几种库从网页中抽取数据。

第3章,下载缓存,介绍了如何通过缓存结果避免重复下载的问题。

第4章,并发下载,教你如何通过并行下载网站加速数据抓取。

第5章,动态内容,介绍了如何通过几种方式从动态网站中抽取数据。

第6章,表单交互,展示了如何使用输入及导航等表单进行搜索和登录。

第7章,验证码处理,阐述了如何访问被验证码图像保护的数据。

第8章,Scrapy,介绍了如何使用 Scrapy 进行快速并行的抓取,以及使用 Portia 的 Web 界面构建网络爬虫。

第9章,综合应用,对你在本书中学到的网络爬虫技术进行总结。

阅读本书的前提

为了有助于阐明爬取示例,我们创建了一个示例网站,其网址为http://example.python-scraping.com。用于生成该网站的源代码可以从异步社区获取到,其中包含了如何自行搭建该网站的说明。如果你愿意的话,也可以自己搭建它。

我们决定为本书示例搭建一个定制网站,而不是抓取活跃的网站,这样我们就对环境拥有了完全控制。这种方式提供了稳定性,因为活跃的网站要比书中的定制网站更新更加频繁,当你尝试运行爬虫示例时,代码可能已经无法工作。另外,定制网站允许我们自定义示例,便于阐释特定技巧并避免其他干扰。最后,活跃的网站可能并不欢迎我们使用它作为学习网络爬虫的对象,并且可能会封禁我们的爬虫。使用我们自己定制的网站可以规避这些风险,不过在这些例子中学到的技巧确实也可以应用到这些活跃的网站当中。

本书读者

本书假设你已经拥有一定的编程经验,并且本书很可能不适合零基础的初学者阅读。本书中的网络爬虫示例需要你具有 Python 语言以及使用 pip 安装模块的能力。如果你想复习一下这些知识,有一本非常好的免费在线书籍可以使用,其书名为 Dive Into Python,作者为 Mark Pilgrim,读者可在网上搜索并阅读。这本书也是我初学 Python 时所使用的资源。

此外,这些例子还假设你已经了解网页是如何使用 HTML 进行构建并通过 JavaScript 进行更新的知识。关于 HTTP、CSS、AJAX、WebKit 以及 Redis 的既有知识也很有用,不过它们不是必需的,这些技术会在需要使用时进行介绍。

第1章 网络爬虫简介
第2章 数据抓取
第3章 下载缓存
第4章 并发下载
第5章 动态内容
第6章 表单交互
第7章 验证码处理
第8章 Scrapy
第9章 综合应用

阅读全文: http://gitbook.cn/gitchat/geekbook/5bd683988b3f803a63ef9f98

第1章 网络爬虫简介 1 1.1 网络爬虫何时有用 1 1.2 网络爬虫是否合法 2 1.3 背景调研 3 1.3.1 检查robots.txt 3 1.3.2 检查网站地图 4 1.3.3 估算网站大小 5 1.3.4 识别网站所用技术 7 1.3.5 寻找网站所有者 7 1.4 编第 一个网络爬虫 8 1.4.1 下载网页 9 1.4.2 网站地图爬虫 12 1.4.3 ID遍历爬虫 13 1.4.4 链接爬虫 15 1.5 本章小结 222章 数据抓取 23 2.1 分析网页 23 2.2 三种网页抓取方法 26 2.2.1 正则表达式 26 2.2.2 Beautiful Soup 28 2.2.3 Lxml 30 2.2.4 性能对比 32 2.2.5 结论 35 2.2.6 为链接爬虫添加抓取回调 35 2.3 本章小结 38 第3章 下载缓存 39 3.1 为链接爬虫添加缓存支持 39 3.2 磁盘缓存 42 3.2.1 实现 44 3.2.2 缓存测试 46 3.2.3 节省磁盘空间 46 3.2.4 清理过期数据 47 3.2.5 缺点 48 3.3 数据库缓存 49 3.3.1 NoSQL是什么 50 3.3.2 安装MongoDB 50 3.3.3 MongoDB概述 50 3.3.4 MongoDB缓存实现 52 3.3.5 压缩 54 3.3.6 缓存测试 54 3.4 本章小结 55 第4章 并发下载 57 4.1 100万个网页 57 4.2 串行爬虫 60 4.3 多线程爬虫 60 4.3.1 线程和进程如何工作 61 4.3.2 实现 61 4.3.3 多进程爬虫 63 4.4 性能 67 4.5 本章小结 68 第5章 动态内容 69 5.1 动态网页示例 69 5.2 对动态网页进行逆向工程 72 5.3 渲染动态网页 77 5.3.1 PyQt还是PySide 78 5.3.2 执行 78 5.3.3 使用WebKit与网站交互 80 5.3.4 Selenium 85 5.4 本章小结 88 第6章 表单交互 89 6.1 登录表单 90 6.2 支持内容更新的登录脚本扩展 97 6.3 使用Mechanize模块实现自动化表单处理 100 6.4 本章小结 102 第7章 验证码处理 103 7.1 注册账号 103 7.2 光学字符识别 106 7.3 处理复杂验证码 111 7.3.1 使用验证码处理服务 112 7.3.2 9kw入门 112 7.3.3 与注册功能集成 119 7.4 本章小结 120 第8章 Scrapy 121 8.1 安装 121 8.2 启动项目 122 8.2.1 定义模型 123 8.2.2 创建爬虫 124 8.2.3 使用shell命令抓取 128 8.2.4 检查结果 129 8.2.5 中断与恢复爬虫 132 8.3 使用Portia编可视化爬虫 133 8.3.1 安装 133 8.3.2 标注 136 8.3.3 优化爬虫 138 8.3.4 检查结果 140 8.4 使用Scrapely实现自动化抓取 141 8.5 本章小结 142 第9章 总结 143 9.1 Google搜索引擎 143 9.2 Facebook 148 9.2.1 网站 148 9.2.2 API 150 9.3 Gap 151 9.4 宝马 153 9.5 本章小结 157
### 回答1: Python3网络爬虫开发实战第2是一本介绍如何使用Python3编网络爬虫的实战教程。本书从网络爬虫的基础知识开始,逐步介绍如何使用Python3编爬虫程序,包括如何使用Requests库发送HTTP请求、如何使用BeautifulSoup库解析HTML文档、如何使用Scrapy框架编爬虫程序等。此外,本书还介绍了如何使用Selenium库模拟浏览器行为、如何使用PyQuery库解析XML文档、如何使用MongoDB数据库存储爬取的数据等。本书内容丰富,适合Python初学者和有一定Python基础的读者学习。 ### 回答2Python3是一种流行的编程语言,它已成为网络爬虫开发的首选语言。《Python3网络爬虫开发实战第2》是一本深入解释如何使用Python来编网络爬虫的重要参考书籍。该书覆盖了从基础到高级的各种技术,包括使用Python和第三方库进行web数据存储、数据提取、数据清洗、数据分析等。 第一部分的介绍了网络爬虫的基础概念,包括HTTP协议、HTML解析、代理和Cookie等。其中,作者对Python网络爬虫库Requests的用法进行了详细的介绍,并给出了一些常见的HTTP请求头信息。 在第二部分中,作者细察了如何使用Scrapy和Beautiful Soup等开源库进行数据抓取。这个部分的内容对于希望更深入地了解Python网络爬虫开发的人来说尤其有价值。读者将了解如何爬虫,完成页面解析和使用数据库等数据存储技术。 第三部分深入探讨了其他有用的技术,如Selenium、PhantomJS、Tesseract OCR等。读者可以了解到如何使用这些技术来解决爬虫中遇到的困难。 最后,在第四部分中,作者重点介绍了如何使用Python进行数据分析和可视化,使读者可以更深入地了解所抓取数据的意义和价值。 总的来说,《Python3网络爬虫开发实战第2》是一本值得一读的权威指南,向人们介绍了Python网络爬虫开发的方方面面,无论是初级编程人员还是高级开发人员,他们都可以收获丰富的知识。 ### 回答3: 《Python3网络爬虫开发实战》第2一书由崔庆才编。本书主要讲解Python爬虫的实际应用,包括爬虫的基础知识、数据解析、反爬虫与反反爬虫爬虫实战、分布式爬虫等内容。下面,我将从几个方面介绍一下本书。 一、基础技能篇 本书首先从基础技能开始介绍,包括HTTP协议、HTML、CSS、JavaScript等基本概念,以及Python的一些基础语法。同时,还介绍了一些常用的爬虫框架,如Scrapy等。 二、数据解析篇 爬虫最重要的就是数据解析,本书详细地介绍了爬虫中常用的数据解析库,包括正则表达式、XPath、beautifulsoup等。同时,还介绍了爬虫中常用的数据存储方式,如MySQL、MongoDB等。 三、反爬虫与反反爬虫爬虫的实际应用中,我们还需要面对反爬虫的问题。本书详细介绍了常用的反爬虫手段,如User-Agent伪装、IP代理等。同时,还介绍了如何应对反爬虫措施,如通过随机User-Agent、IP代理池等技术。 四、爬虫实战 本书将爬虫的实际应用分为几个章节进行介绍,包括爬取豆瓣电影、天猫商城、京东商城等网站的数据,爬取微博、知乎等社交网站的数据等。每个实战案例都详细地介绍了爬虫的实现过程,包括数据解析、数据存储、反爬虫等方面的知识,可供读者进行参考。 五、分布式爬虫 最后,本书还介绍了分布式爬虫的实现,包括基于Redis的分布式爬虫、基于MongoDB的分布式爬虫等。这些内容将帮助读者更好地理解分布式爬虫的设计思路。 总体而言,《Python3网络爬虫开发实战》第2是一本较为详细的爬虫书籍,涵盖了爬虫的基础知识、数据解析、反爬虫与反反爬虫爬虫实战、分布式爬虫等方面的内容。对于想要了解Python爬虫的人群,本书绝对是一本不可错过的参考书。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值