精通Scrapy网络爬虫
刘硕 |清华大学出版社
0.00 ¥59.00
收藏
浙江图书馆
  • ISBN
    9787302484936
  • 印刷时间
    2017-09-01
  • 库存
    正在获取...
产品特色
产品特色
编辑推荐
  本书以应用为出发点,详细深入地介绍了Python流行框架Scrapy的核心技术及网络爬虫的开发技巧。
  本书分为基础篇和高级篇两部分,基础篇重点介绍Scrapy的核心元素,如spider、selector、item、link等;高级篇讲解如登录认证、文件下载、执行JavaScript、动态网页爬取、使用HTTP代理、分布式爬虫的编写等内容。
  为方便读者快速上手,本书还设计了大量项目案列,包括供练习用的网站的爬取以及如京东、知乎、豆瓣、360等网站的爬取。
  本书很适合有一定Python语言基础,想学习编写复杂网络爬虫的读者使用。此外,书中涉及的关联知识很丰富,可以帮助读者拓展知识面,掌握更多实用技能。
作者简介
  刘硕:硕士,曾就职于知名外企,从事一线开发工作10年,目前主要从事Python开发与教学工作,在慕课网开设有多门Python课程,深受学员欢迎。
内容简介
  本书深入系统地介绍了Python流行框架Scrapy的相关技术及使用技巧。全书共14章,从逻辑上可分为基础篇和高级篇两部分,基础篇重点介绍Scrapy的核心元素,如spider、selector、item、link等;高级篇讲解爬虫的高级话题,如登录认证、文件下载、执行JavaScript、动态网页爬取、使用HTTP代理、分布式爬虫的编写等,并配合项目案例讲解,包括供练习使用的网站,以及京东、知乎、豆瓣、360爬虫案例等。
  本书案例丰富,注重实践,代码注释详尽,适合有一定Python语言基础,想学习编写复杂网络爬虫的读者使用。


精彩书评
精彩书摘
  第1章初识Scrapy
  本章首先介绍爬虫的基本概念、工作流程,然后介绍Scrapy的安装和网络爬虫项目的实现流程,使读者对网络爬虫有一个大致的了解,并且建立起网络爬虫的编写思路。本章重点讲解以下内容:
  ?网络爬虫及爬虫的工作流程。
  ?Scrapy的介绍与安装。
  ?网络爬虫编写步骤。
  1.1网络爬虫是什么
  网络爬虫是指在互联网上自动爬取网站内容信息的程序,也被称作网络蜘蛛或网络机器人。大型的爬虫程序被广泛应用于搜索引擎、数据挖掘等领域,个人用户或企业也可以利用爬虫收集对自身有价值的数据。举一个简单的例子,假设你在本地新开了一家以外卖生意为主的餐馆,现在要给菜品定价,此时便可以开发一个爬虫程序,在美团、饿了么、百度外卖这些外卖网站爬取大量其他餐馆的菜品价格作为参考,以指导定价。
  一个网络爬虫程序的基本执行流程可以总结为以下循环:
  1.下载页面
  一个网页的内容本质上就是一个HTML文本,爬取一个网页内容之前,首先要根据网页的URL下载网页。
  2.提取页面中的数据
  当一个网页(HTML)下载完成后,对页面中的内容进行分析,并提取出我们感兴趣的数据,提取到的数据可以以多种形式保存起来,比如将数据以某种格式(CSV、JSON)写入文件中,或存储到数据库(MySQL、MongoDB)中。
  3.提取页面中的链接
  通常,我们想要获取的数据并不只在一个页面中,而是分布在多个页面中,这些页面彼此联系,一个页面中可能包含一个或多个到其他页面的链接,提取完当前页面中的数据后,还要把页面中的某些链接也提取出来,然后对链接页面进行爬取(循环1-3步骤)。
  设计爬虫程序时,还要考虑防止重复爬取相同页面(URL去重)、网页搜索策略(深度优先或广度优先等)、爬虫访问边界限定等一系列问题。
  从头开发一个爬虫程序是一项烦琐的工作,为了避免因制造轮子而消耗大量时间,在实际应用中我们可以选择使用一些优秀的爬虫框架,使用框架可以降低开发成本,提高程序质量,让我们能够专注于业务逻辑(爬取有价值的数据)。接下来,本书就带你学习目前非常流行的开源爬虫框架Scrapy。
  1.2Scrapy简介及安装
  Scrapy是一个使用Python语言(基于Twisted框架)编写的开源网络爬虫框架,目前由ScrapinghubLtd维护。Scrapy简单易用、灵活易拓展、开发社区活跃,并且是跨平台的。在Linux、MaxOS以及Windows平台都可以使用。Scrapy应用程序也使用Python进行开发,目前可以支持Python2.7以及Python3.4+版本。
  在任意操作系统下,可以使用pip安装Scrapy,例如:
  $pipinstallscrapy
  为确认Scrapy已安装成功,首先在Python中测试能否导入Scrapy模块:
  >>>importscrapy
  >>>scrapy.version_info
  (1,3,3)
  然后,在shell中测试能否执行Scrapy这条命令:
  $scrapy
  Scrapy1.3.3-noactiveproject
  ……
目录
第1章  初识Scrapy 1
1.1  网络爬虫是什么 1
1.2  Scrapy简介及安装 2
1.3  编写第一个Scrapy爬虫 3
1.3.1  项目需求 4
1.3.2  创建项目 4
1.3.3  分析页面 5
1.3.4  实现Spider 6
1.3.5  运行爬虫 8
1.4  本章小结 11
第2章  编写Spider 12
2.1  Scrapy框架结构及工作原理 12
2.2  Request和Response对象 14
2.2.1  Request对象 15
2.2.2  Response对象 16
2.3  Spider开发流程 18
2.3.1  继承scrapy.Spider 19
2.3.2  为Spider命名 20
2.3.3  设定起始爬取点 20
2.3.4  实现页面解析函数 22
2.4  本章小结 22
第3章  使用Selector提取数据 23
3.1  Selector对象 23
3.1.1  创建对象 24
3.1.2  选中数据 25
3.1.3  提取数据 26
3.2  Response内置Selector 28
3.3  XPath 29
3.3.1  基础语法 30
3.3.2  常用函数 35
3.4  CSS选择器 36
3.5  本章小结 40
第4章  使用Item封装数据 41
4.1  Item和Field 42
4.2  拓展Item子类 44
4.3  Field元数据 44
4.4  本章小结 47
第5章  使用Item Pipeline处理数据 48
5.1  Item Pipeline 48
5.1.1  实现Item Pipeline 49
5.1.2  启用Item Pipeline 50
5.2  更多例子 51
5.2.1  过滤重复数据 51
5.2.2  将数据存入
MongoDB 54
5.3  本章小结 57
第6章  使用LinkExtractor提取链接 58
6.1  使用LinkExtractor 59
6.2  描述提取规则 60
6.3  本章小结 65
第7章  使用Exporter导出数据 66
7.1  指定如何导出数据 67
7.1.1  命令行参数 67
7.1.2  配置文件 69
7.2  添加导出数据格式 70
7.2.1  源码参考 70
7.2.2  实现Exporter 72
7.3  本章小结 74
第8章  项目练习 75
8.1  项目需求 77
8.2  页面分析 77
8.3  编码实现 83
8.4  本章小结 88
第9章  下载文件和图片 89
9.1  FilesPipeline和
ImagesPipeline 89
9.1.1  FilesPipeline使用
说明 90
9.1.2  ImagesPipeline使用
说明 91
9.2  项目实战:爬取matplotlib
例子源码文件 92
9.2.1  项目需求 92
9.2.2  页面分析 94
9.2.3  编码实现 96
9.3  项目实战:下载360图片 103
9.3.1  项目需求 104
9.3.2  页面分析 104
9.3.3  编码实现 107
9.4  本章小结 109
第10章  模拟登录 110
10.1  登录实质 110
10.2  Scrapy模拟登录 114
10.2.1  使用FormRequest 114
10.2.2  实现登录Spider 117
10.3  识别验证码 119
10.3.1  OCR识别 119
10.3.2  网络平台识别 123
10.3.3  人工识别 127
10.4  Cookie登录 128
10.4.1  获取浏览器
Cookie 128
10.4.2  CookiesMiddleware
源码分析 129
10.4.3  实现BrowserCookies-
Middleware 132
10.4.4  爬取知乎个人
信息 133
10.5  本章小结 135
第11章  爬取动态页面 136
11.1  Splash渲染引擎 140
11.1.1  render.html端点 141
11.1.2  execute端点 142
11.2  在Scrapy中使用Splash 145
11.3  项目实战:爬取toscrape
中的名人名言 146
11.3.1  项目需求 146
11.3.2  页面分析 146
11.3.3  编码实现 147
11.4  项目实战:爬取京东商城
中的书籍信息 149
11.4.1  项目需求 149
11.4.2  页面分析 149
11.4.3  编码实现 152
11.5  本章小结 154
第12章  存入数据库 155
12.1  SQLite 156
12.2  MySQL 159
12.3  MongoDB 165
12.4  Redis 169
12.5  本章小结 173
第13章  使用HTTP代理 174
13.1  HttpProxyMiddleware 175
13.1.1  使用简介 175
13.1.2  源码分析 177
13.2  使用多个代理 179
13.3  获取免费代理 180
13.4  实现随机代理 184
13.5  项目实战:爬取豆瓣电影
信息 187
13.5.1  项目需求 188
13.5.2  页面分析 189
13.5.3  编码实现 194
13.6  本章小结 198
第14章  分布式爬取 199
14.1  Redis的使用 200
14.1.1  安装Redis 200
14.1.2  Redis基本命令 201
14.2  scrapy-redis源码分析 206
14.2.1  分配爬取任务
部分 207
14.2.2  汇总爬取数据
部分 214
14.3  使用scrapy-redis进行分
布式爬取 217
14.3.1  搭建环境 217
14.3.2  项目实战 218
14.4  本章小结 224
 

相关推荐
读者免费借回家
加入书架成功