Python3.x网络爬虫从零基础到项目实战pdf下载pdf下载

Python3.x网络爬虫从零基础到项目实战百度网盘pdf下载

作者:
简介:本篇主要提供Python3.x网络爬虫从零基础到项目实战pdf下载
出版社:北京大学出版社
出版时间:2020-05
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色


编辑推荐

● 案例完整
本书中的所有案例都是通过“理论讲解 + 环境搭建 + 完整代码及分析 + 运行结果”这种完善的结构进行讲解的。此外,复杂的案例配有项目结构图,有难度的案例还分析了底层源码,并且对于所有案例的讲解,都考虑到了读者可能会遇到的各种问题。
● 案例经典实用
本书中的案例大多是由真实项目简化而来的,既体现了所述知识点的精华,又屏蔽了无关技术的干扰。此外,本书在案例讲解时,也充分考量了相关知识的各种实际应用场景,将同一个技术在多个场景下的不同角色都做了充分的讲解。
● 进阶的必学技术一网打尽
本书讲解的爬虫分析、发送请求、数据提取、数据存储、并发爬虫和分布式爬虫等技术是每一位爬虫程序员在进阶路上的必学知识。本书将这些技术的核心要点进行了深入细致的讲解,可以帮助读者尽快取得技术上的突破。
● 系统讲解前沿稀缺知识
本书中介绍的Selenium和Scrapy等技术,均被国内外各大互联网公司大量使用,但目前这些技术的相关资料却少之又少,实战型的书籍更是匮乏。本书对这些学习资源相对稀缺,但同时又是经典必学的知识进行了较为系统的讲解,非常有助于读者快速提升自己已有的知识体系。
● 文字通俗易懂
本书的作者不仅有着多年的开发经验,还承担过多年的技术讲师及教学管理工作,非常擅长用清晰易懂的文字阐述各种难点技术。

内容简介

《Python 3.x网络爬虫从零基础到项目实战》介绍了如何使用Python来编写网络爬虫程序,内容包括网络爬虫简介、发送请求、提取数据、使用多个线程和进程进行并发抓取、抓取动态页面中的内容、与表单进行交互、处理页面中的验证码问题及使用Scrapy和分布式进行数据抓取,并在最后介绍了使用本书讲解的数据抓取技术对几个真实的网站进行抓取的实例,旨在帮助读者活学活用书中介绍的技术。
本书提供了与图书内容全程同步的教学录像。此外,还赠送了大量相关学习资料,以便读者扩展学习。
本书适合任何想学习Python爬虫的读者,无论您是否从事计算机相关专业,是否接触过Python,均可以通过学习本书快速掌握Python爬虫的开发方法和技巧。

作者简介

史卫亚,博士,副教授,IEEE会员,CCF会员,INNS会员。2009年获得复旦大学计算机应用专业博士学位。2015—2016年在美国北卡罗来纳大学做访问学者,对机器学习、大数据检索、数据库、图像和视频处理、人工智能和模式识别等有深入研究。

目录

目录
第1章 爬虫基础 1
1.1 认识爬虫 2
1.2 Python环境 4
1.3 Python语法 11
1.4 网页结构 62
1.5 HTTP协议 68
1.6 本章小结 84
1.7 实战练习 84
第2章 开始爬虫 85
2.1 urllib模块 86
2.2 requests模块 88
2.3 re模块 110
2.4 项目案例:爬百度贴吧 122
2.5 本章小结 128
2.6 实战练习 128
第3章 更多数据提取的方式 129
3.1 XPath和LXml 130
3.2 BeautifulSoup4 137
3.3 JsonPath 143
3.4 性能和选择 148
3.5 项目案例:爬腾讯招聘网 148
3.6 本章小结 154
3.7 实战练习 154
第4章 并发 155
4.1 100万个网页 156
4.2 进程 161
4.3 线程 181
4.4 锁 191
4.5 协程 202
4.6 线程、进程、协程对比 206
4.7 并发爬虫 207
4.8 本章小结 216
4.9 实战练习 216
第5章 数据存储 217
5.1 文件存储 218
5.2 关系型数据库存储 221
5.3 非关系型数据库存储 231
5.4 项目案例:爬豆瓣电影 266
5.5 本章小结 270
5.6 实战练习 270
第6章 Ajax数据爬取 271
6.1 Ajax的概念 272
6.2 实现Ajax 272
6.3 项目案例:爬斗鱼直播 282
6.4 本章小结 286
6.5 实战练习 286
第7章 动态渲染页面爬取 287
7.1 Selenium 288
7.2 项目案例:爬京东商品 306
7.3 本章小结 311
7.4 实战练习 312
第8章 图形验证码识别 313
8.1 使用pytesseract 314
8.2 使用打码平台 317
8.3 项目案例:识别验证码完成登录 323
8.4 本章小结 326
8.5 实战练习 326
第9章 模拟登录 327
9.1 Cookie 328
9.2 Session 330
9.3 Cookie池的搭建 332
9.4 项目案例:登录GitHub 335
9.5 本章小结 340
9.6 实战练习 340
第10章 代理IP的使用 341
10.1 代理IP 342
10.2 代理IP池 348
10.3 付费代理的使用 351
10.4 项目案例:使用代理IP爬微信公众号 358
10.5 本章小结 368
10.6 实战练习 368
第11章 Scrapy框架 369
11.1 认识Scrapy 370
11.2 编写Scrapy的第一个案例 373
11.3 Spider详情 384
11.4 操作数据 403
11.5 模拟登录 432
11.6 中间件 446
11.7 分布式 458
11.8 项目案例:爬新浪新闻 500
11.9 本章小结 510
11.10 实战练习 510
第12章 项目案例:爬校花网信息 511
12.1 分析网站 512
12.2 开始爬取 515
第13章 项目案例:爬北京地区短租房信息 523
13.1 分析网站 524
13.2 开始爬取 525
第14章 项目案例:爬简书专题信息 531
14.1 分析网站 532
14.2 开始爬取 535
第15章 项目案例:爬QQ音乐歌曲 539
15.1 分析网站 540
15.2 开始爬取 542
第16章 项目案例:爬百度翻译 545
16.1 分析网站 546
16.2 开始爬取 550
第17章 项目案例:爬百度地图API 555
17.1 分析网站 556
17.2 开始爬取 560
第18章 项目案例:爬360图片 571
18.1 分析网站 572
18.2 开始爬取 573
第19章 项目案例:爬当当网 577
19.1 分析网站 578
19.2 开始爬取 580
第20章 项目案例:爬唯品会 585
20.1 分析网站 586
20.2 开始爬取 589
第21章 项目案例:爬智联招聘 593
21.1 分析网站 594
21.2 开始爬取 597

精彩书摘

第1章
爬虫基础

互联网上有浩瀚的数据资源,要想爬取这些数据就离不开爬虫。本章学习关于Python爬虫的一些技术内容。
本章重点讲解以下内容。
爬虫的相关概念
Python语法的一些基础知识
网页相关的知识,包括HTML和HTTP


1.1 认识爬虫
网络爬虫又称为网页蜘蛛、网络机器人,通俗来讲,网络爬虫就是一段程序,通过这段程序可以在网站上获取需要的信息,如文字、视频、图片等。此外,网络爬虫还有些不常用的名称,如蚂蚁、自动索引、模拟程序或蠕虫等。
爬虫的设计思路如下。
(1)明确需要爬取的网页的URL地址。
(2)通过HTTP请求来获取对应的HTML页面。
(3)提取HTML中的内容。这里有两种情况:如果是有用的数据,就保存起来;如果是需要继续爬取的页面,就重新指定第(2)步。
为了更方便地理解爬虫,下面介绍大数据时代获取数据的方式。
1.1.1 大数据时代获取数据的方式
随着社会的高速发展,科技发达,信息畅通,人们之间的交流越来越密切,生活也越来越方便,大数据就是这个高科技时代的产物。那么在大数据时代,获取数据的方式有哪些?
(1)企业产生的数据:百度搜索指数、腾讯公司业绩数据、阿里巴巴集团财务及运营数据、新浪微博微指数等。
(2)数据平台购买的数据:数据平台包括数据堂、国云数据市场、贵阳大数据交易所等。
(3)政府/机构公开的数据:国家统计局数据、中国人民银行调查统计司统计数据、世界银行公开数据、联合国数据库、纳斯达克综合指数、新浪美股实时行情等。这些数据通常都是由各地政府统计上报,或者由行业内专业的网站、机构等提供。
(4)数据管理咨询公司的数据:麦肯锡、埃森哲、尼尔森、中国互联网络信息中心、艾瑞咨询等数据管理咨询公司,通常拥有庞大的数据团队,一般通过市场调研、问卷调查、固定的样本检测、与各行各业的公司合作、专家对话来获取数据,并根据客户需求制定商业解决方案。
(5)爬取网络数据:如果数据市场上没有需要的数据,或者价格太高不愿意购买,那么可以利用爬虫技术,获取网站上的数据。
第5种方式就是本书要重点介绍的内容。
1.1.2 爬虫的分类
爬虫有很多种类型,根据使用场景的不同,可以将爬虫分为通用爬虫和聚焦爬虫两种。
1. 通用爬虫
随着网络技术的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎的核心就是通用爬虫,例如,传统的通用搜索引擎谷歌、百度等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。
随着网络技术的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎的核心就是通用爬虫,例如,传统的通用搜索引擎谷歌、百度等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。
通用爬虫是搜索引擎爬取系统的重要组成部分,主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
通用爬虫是从互联网中搜集网页、采集信息。采集的网页信息可以为搜索引擎建立索引提供支持,它决定着整个引擎系统的内容是否丰富,信息是否及时,因此其性能的优劣直接影响着搜索引擎的效果。搜索引擎网络爬虫的基本工作流程如下。
(1)爬取网页。
如图1-1所示,取一部分种子URL,将这些种子放入待爬取URL队列。取出待爬取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储到已下载的网页库中,再将这些URL放入已爬取的URL队列。分析已爬取的URL队列中的URL,分析其中的其他URL,并且将其中需要继续爬取的URL放入待爬取的URL队列,从而进入下一个循环。

图1-1 搜索引擎网络爬虫的基本工作流程
在图1-1中,搜索引擎获取新网站的URL,是输入了一定的规则,如标注为nofollow的链接或Robots协议。
提 示Robots协议也称为爬虫协议、机器人协议等,其全称为网络爬虫排除标准(Robots Exclusion Protocol)。网站通过Robots协议告诉搜索引擎哪些页面可以爬取,哪些页面不能爬取,例如,淘宝网:https://www.taobao.com/robots.txt,腾讯网:http://www.qq.com/robots.txt。
(2)数据存储。
搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是一致的。搜索引擎网络爬虫在爬取页面的同时,也做重复内容检测,一旦遇到访问权重很低的网站上有大量抄袭、采集或复制的内容,就有可能不再继续爬行。
(3)预处理。
搜索引擎将爬虫爬取的页面进行预处理,如提取文字、中文分词、索引处理等。
除HTML文件外,搜索引擎通常还能爬取和索引以文字为基础的多种文件类型,如 PDF、Word、WPS、XLS、PPT、TXT文件等。
(4)提供检索服务,网站排名。
搜索引擎在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检索相关的信息展示给用户。同时会根据页面的PageRank值(链接的访问量排名)来进行网站排名,Rank值高的网站在搜索结果中会排名较前。
通用爬虫虽然功能很强大,但是也存在一定的局限性。
(1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。
(2)通用搜索引擎的目标是尽可能地扩大网络覆盖范围,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。
(3)网络技术的不断发展,万维网数据形式越来越丰富,如图片、数据库、音频、视频等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很快地发现和获取。
(4)通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。
2. 聚焦爬虫
为了解决通用爬虫的局限性,定向爬取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的爬取目标,有选择地访问万维网上的网页与相关的链接,获取所需信息。与通用爬虫不同的是,聚焦爬虫并不追求大的覆盖范围,而将目标定为爬取与某一特定主题内容相关的网页,为面向主题的用户查询获取数据资源。
提 示
第2~21章介绍的网络爬虫,就是聚焦爬虫。