目 录 版权信息 版权声明 内容提要 关于作者 关于审稿人 前言 本书内容 阅读本书的前提 本书读者 第1章 网络爬虫简介 1.1 网络爬虫何时有用 1.2 网络爬虫是否合法 1.3 背景调研 1.3.1 检查robots.txt 1.3.2 检查网站地图 1.3.3 估算网站大小 1.3.4 识别网站所用技术 1.3.5 寻找网站所有者 1.4 编写第一个网络爬虫 1.4.1 下载网页 1.4.2 网站地图爬虫 1.4.3 ID遍历爬虫 1.4.4 链接爬虫 1.5 本章小结 第2章 数据抓取 2.1 分析网页 2.2 三种网页抓取方法 2.2.1 正则表达式 2.2.2 Beautiful Soup 2.2.3 Lxml 2.2.4 性能对比 2.2.5 结论 2.2.6 为链接爬虫添加抓取回调 2.3 本章小结 第3章 下载缓存 3.1 为链接爬虫添加缓存支持 3.2 磁盘缓存 3.2.1 实现 3.2.2 缓存测试 3.2.3 节省磁盘空间 3.2.4 清理过期数据 3.2.5 缺点 3.3 数据库缓存 3.3.1 NoSQL是什么 3.3.2 安装MongoDB 3.3.3 MongoDB概述 3.3.4 MongoDB缓存实现 3.3.5 压缩 3.3.6 缓存测试 3.4 本章小结 第4章 并发下载 4.1 100万个网页 4.1.1 解析Alexa列表 4.2 串行爬虫 4.3 多线程爬虫 4.3.1 线程和进程如何工作 4.3.2 实现 4.3.3 多进程爬虫 4.4 性能 4.5 本章小结 第5章 动态内容 5.1 动态网页示例 5.2 对动态网页进行逆向工程 5.2.1 边界情况 5.3 渲染动态网页 5.3.1 PyQt还是PySide 5.3.2 执行JavaScript 5.3.3 使用WebKit与网站交互 5.3.4 Selenium 5.4 本章小结 第6章 表单交互 6.1 登录表单 6.1.1 从浏览器加载cookie 6.2 支持内容更新的登录脚本扩展 6.3 使用Mechanize模块实现自动化表单处理 6.4 本章小结 第7章 验证码处理 7.1 注册账号 7.1.1 加载验证码图像 7.2 光学字符识别 7.2.1 进一步改善 7.3 处理复杂验证码 7.3.1 使用验证码处理服务 7.3.2 9kw入门 7.3.3 与注册功能集成 7.4 本章小结 第8章 8.1 安装 8.2 启动项目 8.2.1 定义模型 8.2.2 创建爬虫 8.2.3 使用shell命令抓取 8.2.4 检查结果 8.2.5 中断与恢复爬虫 8.3 使用Portia编写可视化爬虫 8.3.1 安装 8.3.2 标注 8.3.3 优化爬虫 8.3.4 检查结果 8.4 使用Scrapely实现自动化抓取 8.5 本章小结 第9章 总结 9.1 Google搜索引擎 9.2 Facebook 9.2.1 网站 9.2.2 API 9.3 Gap 9.4 宝马 9.5 本章小结 欢迎来到异步社区! 版权信息 书名:用Python写网络爬虫 ISBN:978-7-115-43179-0 本书由人民邮电出版社发行数字版。版权所 有,侵权必究。 您购买的人民邮电出版社电子书仅供您个人 使用,未经授权,不得以任何方式复制和传播本 书内容。 我们愿意相信读者具有这样的良知和觉悟, 与我们共同保护知识产权。 如果购买者有侵权行为,我们可能对该用户 实施包括但不限于关闭该帐号等维权措施,并可 能追究法律责任。 • 著 译 [澳] Richard Lawson 李 斌 责任编辑 傅道坤 • 人民邮电出版社出版发行 区成寿寺路11号 邮编 100164 315@ptpress.com.cn 北京市丰台 电子邮件 网址 http://www.ptpress.com.cn • 读者服务热线:(010)81055410 反盗版热线:(010)81055315 版权声明 Copyright © 2015 Packt Publishing. First published in the English language under the title Web Scraping with Python. All Rights Reserved. 本书由英国Packt Publishing公司授权人民邮 电出版社出版。未经出版者书面许可,对本书的 任何部分不得以任何方式或任何手段复制和传 播。 版权所有,侵权必究。 内容提要 本书讲解了如何使用Python来编写网络爬虫 程序,内容包括网络爬虫简介,从页面中抓取数 据的三种方法,提取缓存中的数据,使用多个线 程和进程来进行并发抓取,如何抓取动态页面中 的内容,与表单进行交互,处理页面中的验证码 问题,以及使用Scarpy和Portia来进行数据抓取, 并在最后使用本书介绍的数据抓取技术对几个真 实的网站进行了抓取,旨在帮助读者活学活用书 中介绍的技术。 本书适合有一定Python编程经验,而且对爬 虫技术感兴趣的读者阅读。 关于作者 Richard Lawson来自澳大利亚,毕业于墨尔 本大学计算机科学专业。毕业后,他创办了一家 专注于网络爬虫的公司,为超过50个国家的业务 提供远程工作。他精通于世界语,可以使用汉语 和韩语对话,并且积极投身于开源软件。他目前 在牛津大学攻读研究生学位,并利用业余时间研 发自主无人机。 我要感谢Timothy Baldwin教授将我引入 这个令人兴奋的领域,以及本书编写时在巴 黎招待我的Tharavy Douc。 关于审稿人 Martin Burch是一名常驻纽约的数据记者, 其工作是为华尔街日报绘制交互式图表。他在新 墨西哥州立大学获得了新闻学和信息系统专业的 学士学位,然后在纽约城市大学新闻学研究院获 得了新闻学专业硕士学位。 我要感谢我的妻子Lisa鼓励我协助本书的 创作,我的叔叔Michael耐心解答我的编程问 题,以及我的父亲Richard激发了我对新闻学 和写作的热爱。 William Sankey是一位数据专业人士,也是 一位业余开发人员,生活在马里兰州科利奇帕克 市。他于2012年毕业于约翰•霍普金斯大学,获得 了公共政策硕士学位,专业方向为定量分析。他 目前在L&M政策研究有限责任公司担任健康服务 研究员,从事与美国医疗保险和医疗补助服务中 心(CMS)相关的项目。这些项目包括责任医疗 机构评估以及精神病院住院患者预付费系统监 测。 我要感谢我深爱的妻子Julia和顽皮的小 猫Ruby,给予我全部的爱和支持。 Ayush Tiwari是一名Python开发者,本科就 读于印度理工学院罗克分校。他自2013年起工作 于印度理工学院罗克分校信息管理小组,并活跃 于网络开发领域。对他而言,审阅本书是一个非 常棒的经历。他不仅是一名审稿人,也是一名狂 热的网络爬虫学习者。他向所有Python爱好者推 荐本书,以便享受爬虫的益处。 他热衷于Python 网络爬虫,曾参与体育直播订阅、通用Python电 子商务网络爬虫(在Miranj)等相关项目。 他还 使用Django应用开发了就业门户,帮助改善印度 理工学院罗克分校的就业流程。 除了后端开发之 外,他还喜欢使用诸如NumPy、SciPy等Python库 进行科学计算和数据分析,目前他从事计算流体 力学领域的研究。你可以在GitHub上访问到他的 项目,他的用户名是tiwariayush。 他喜欢徒步穿 越喜马拉雅山谷,每年会参加多次徒步行走活 动。此外,他还喜欢弹吉他。他的成就还包括参 加国际知名的Super 30小组,并在其中成为排名 保持者。他在高中时,还参加了国际奥林匹克数 学竞赛。 我的家庭成员(我的姐姐Aditi、我的父母以 及Anand先生)、我在VI和IMG的朋友以及我的 教授都为我提供了很大的帮助。我要感谢他们所 有人对我的支持。 最后,感谢尊敬的作者和Packt出版社团队出 版了这些非常好的技术书籍。我要对他们在编写 这些书籍时的所有辛苦工作表示赞赏。 前言 互联网包含了迄今为止最有用的数据集,并 且大部分可以免费公开访问。但是,这些数据难 以复用。它们被嵌入在网站的结构和样式当中, 需要抽取出来才能使用。从网页中抽取数据的过 程又被称为网络爬虫。随着越来越多的信息被发 布到网络上,网络爬虫也变得越来越有用。 本书内容 第1章,网络爬虫简介,介绍了网络爬虫,并 讲解了爬取网站的方法。 第2章,数据抓取,展示了如何从网页中抽取 数据。 第3章,下载缓存,学习了如何通过缓存结果 避免重复下载的问题。 第4章,并发下载,通过并行下载加速数据抓 取。 第5章,动态内容,展示了如何从动态网站中 抽取数据。 第6章,表单交互,展示了如何与表单进行交 互,从而访问你需要的数据。 第7章,验证码处理,阐述了如何访问被验证 码图像保护的数据。 第8章,Scrapy,学习了如何使用流行的高级 框架Scrapy。 第9章,总结,对我们介绍的这些网络爬虫技 术进行总结。 阅读本书的前提 本书中所有的代码都已经在Python 2.7环境中 进行过测试,并且可以从 http://bitbucket.org/wswp/code下载到这些源代 码。理想情况下,本书未来的版本会将示例代码 移植到Python 3当中。不过,现在依赖的很多库 (比如Scrapy/Twisted、Mechanize和Ghost)还只 支持Python 2。为了帮助阐明爬取示例,我们创 建了一个示例网站,其网址为http://example. webscraping.com。由于该网站限制了下载内容的 速度,因此如果你希望自行搭建示例网站,可以 从http://bitbucket.org/wswp/places获取网站源 代码和安装说明。 我们决定为本书中使用的大部分示例搭建一 个定制网站,而不是抓取活跃网站,这样我们就 对环境拥有了完全控制。这种方式为我们提供了 稳定性,因为活跃网站要比书中的定制网站更新 更加频繁,并且当你尝试运行爬虫示例时,代码 可能已经无法工作。另外,定制网站允许我们自 定义示例,用于阐释特定技巧并避免其他干扰。 最后,活跃网站可能并不欢迎我们使用它作为学 习网络爬虫的对象,并且可能会尝试封禁我们的 爬虫。使用我们自己定制的网站可以规避这些风 险,不过在这些例子中学到的技巧确实也可以应 用到这些活跃网站当中。

pdf文档 用Python写网络爬虫

计算机 > Python-Spider > python_spider > 文档预览
224 页 0 下载 499 浏览 0 评论 0 收藏 3.0分
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
用Python写网络爬虫 第 1 页 用Python写网络爬虫 第 2 页 用Python写网络爬虫 第 3 页 用Python写网络爬虫 第 4 页 用Python写网络爬虫 第 5 页
下载文档到电脑,方便使用
还有 219 页可预览,继续阅读
本文档由 user2021-03-14 08:39:04上传分享
给文档打分
您好可以输入 255 个字符
DocHub文库的中文名是什么?( 答案:多哈 )
评论列表
  • 暂时还没有评论,期待您的金玉良言