对于网络爬虫技术的学习,其他教学很少有从整体结构来说的,多数是直接放出某部分代码。这样的方法会使初学者摸不着头脑:就好像是盲人摸象,有人摸到的是象腿,以为是一根大柱子;有人摸到的是大象耳朵,以为是一把大蒲扇等。

因此,在《Python网络爬虫从入门到实践(第2版)》这本书里对此就作出了解释。
在这里插入图片描述
在开始第一个爬虫之前,先从宏观角度出发说清楚两个问题:

Python爬虫的流程是怎样的?

  • 三个流程的技术实现是什么?

值得说明的是,本书选择了Python 3作为开发语言,现在Python最新版为Python 3.7。熟悉Python 2的读者可以在本书代码的基础上稍加改动,用Python 2运行。值得注意的是,Python 2即将在2020年1月1日停止支持,因此建议初学者直接安装Python 3进行学习。

由于本书的潜在读者多数使用Windows操作系统,因此本书大部分实例都是基于Windows编写和运行的。如果使用的是Linux和Mac OS操作系统,在搭建好Python平台之后也可以直接运行本书中的代码。

Python爬虫的流程

网络爬虫的流程其实非常简单,主要可以分为三部分:(1)获取网页;(2)解析网页(提取数据);(3)存储数据。

在这里插入图片描述

(1)获取网页就是给一个网址发送请求,该网址会返回整个网页的数据。类似于在浏览器中键入网址并按回车键,然后可以看到网站的整个页面。

(2)解析网页就是从整个网页的数据中提取想要的数据。类似于你在页面中想找到产品的价格,价格就是你要提取的数据。

(3)存储数据也很容易理解,就是把数据存储下来。我们可以存储在csv中,也可以存储在数据库中。

三个流程的技术实现

下面列出三个流程的技术实现,括号里是对应的章节。

1.获取网页

获取网页的基础技术:requests、urllib和selenium(3&4)。

获取网页的进阶技术:多进程多线程抓取(8)、登录抓取(12)、突破IP封禁(9)和使用服务器抓取(12)。

2.解析网页

解析网页的基础技术:re正则表达式、BeautifulSoup和lxml(5)。

解析网页的进阶技术:解决中文乱码(10)。

3.存储数据

存储数据的基础技术:存入txt文件和存入csv文件(6)。
存储数据的进阶技术:存入MySQL数据库和MongoDB数据库(6)。

除此之外,第7章介绍Scrapy爬虫框架,第13章也会介绍分布式爬虫。

本书的使用方法:第1章到第7章是网络爬虫的基础,建议大家按顺序读;第8章到第13章是进阶部分,大家可以选择自己感兴趣的内容跳跃阅读。之后可以阅读第14章到第17章,通过项目实践消化和吸收Python爬虫的知识。

如果对于上述技术不熟悉的读者也不必担心,本书将会对其中的技术进行讲解,力求做到深入浅出。更多内容可到《Python网络爬虫从入门到实践(第2版)》这本书里查看哦

目录

前言
第1章 网络爬虫入门1
1.1 为什么要学网络爬虫2
1.1.1 网络爬虫能带来什么好处2
1.1.2 能从网络上爬取什么数据3
1.1.3 应不应该学爬虫3
1.2 网络爬虫是否合法3
1.2.1 Robots协议4
1.2.2 网络爬虫的约束5
1.3 网络爬虫的基本议题6
1.3.1 Python爬虫的流程7
1.3.2 三个流程的技术实现7
第2章 编写第一个网络爬虫9
2.1 搭建Python平台10
2.1.1 Python的安装10
2.1.2 使用pip安装第三方库12
2.1.3 使用编辑器Jupyter 编程13
2.1.4 使用编辑器Pycharm编程15
2.2 Python 使用入门18
2.2.1 基本命令18
2.2.2 数据类型19
2.2.3 条件语句和循环语句21
2.2.4 函数23
2.2.5 面向对象编程24
2.2.6 错误处理28
2.3 编写第一个简单的爬虫29
2.3.1 第一步:获取页面29
2.3.2 第二步:提取需要的数据30
2.3.3 第三步:存储数据32
2.4 Python实践:基础巩固33
2.4.1 Python基础试题34
2.4.2 参考答案35
2.4.3 自我实践题38
第3章 静态网页抓取39
3.1 安装Requests40
3.2 获取响应内容40
3.3 定制Requests41
3.3.1 传递URL参数41
3.3.2 定制请求头42
3.3.3 发送POST请求43
3.3.4 超时44
3.4 Requests爬虫实践:TOP250电影数据44
3.4.1 网站分析45
3.4.2 项目实践45
3.4.3 自我实践题47
第4章 动态网页抓取48
4.1 动态抓取的实例49
4.2 解析真实地址抓取50
4.3 通过Selenium模拟浏览器抓取55
4.3.1 Selenium的安装与基本介绍55
4.3.2 Selenium的实践案例57
4.3.3 Selenium获取文章的所有评论58
4.3.4 Selenium的高级操作61
4.4 Selenium爬虫实践:深圳短租数据64
4.4.1 网站分析64
4.4.2 项目实践66
4.4.3 自我实践题69
第5章 解析网页70
5.1 使用正则表达式解析网页71
5.1.1 re.match方法71
5.1.2 re.search方法74
5.1.3 re.findall方法74
5.2 使用BeautifulSoup解析网页76
5.2.1 BeautifulSoup的安装76
5.2.2 使用BeautifulSoup获取博客标题77
5.2.3 BeautifulSoup的其他功能78
5.3 使用lxml解析网页82
5.3.1 lxml的安装82
5.3.2 使用lxml获取博客标题82
5.3.3 XPath的选取方法84
5.4 总结85
5.5 BeautifulSoup爬虫实践:房屋价格数据86
5.5.1 网站分析86
5.5.2 项目实践87
5.5.3 自我实践题89
第6章 数据存储90
6.1 基本存储:存储至TXT或CSV91
6.1.1 把数据存储至TXT91
6.1.2 把数据存储至CSV93
6.2 存储至MySQL数据库94
6.2.1 下载安装MySQL95
6.2.2 MySQL的基本操作99
6.2.3 Python操作MySQL数据库104
6.3 存储至MongoDB数据库106
6.3.1 下载安装MongoDB107
6.3.2 MongoDB的基本概念110
6.3.3 Python操作MongoDB数据库112
6.3.4 RoboMongo的安装与使用113
6.4 总结115
6.5 MongoDB爬虫实践:虎扑论坛116
6.5.1 网站分析116
6.5.2 项目实践117
6.5.3 自我实践题123
第7章 Scrapy框架124
7.1 Scrapy是什么125
7.1.1 Scrapy架构125
7.1.2 Scrapy数据流(Data Flow)126
7.1.3 选择Scrapy还是Requests+bs4127
7.2 安装Scrapy128
7.3 通过Scrapy抓取博客128
7.3.1 创建一个Scrapy项目128
7.3.2 获取博客网页并保存129
7.3.3 提取博客标题和链接数据131
7.3.4 存储博客标题和链接数据133
7.3.5 获取文章内容134
7.3.6 Scrapy的设置文件136
7.4 Scrapy爬虫实践:财经新闻数据137
7.4.1 网站分析137
7.4.2 项目实践138
7.4.3 自我实践题141
第8章 提升爬虫的速度142
8.1 并发和并行,同步和异步143
8.1.1 并发和并行143
8.1.2 同步和异步143
8.2 多线程爬虫144
8.2.1 简单的单线程爬虫145
8.2.2 学习Python多线程145
8.2.3 简单的多线程爬虫148
8.2.4 使用Queue的多线程爬虫150
8.3 多进程爬虫153
8.3.1 使用multiprocessing的多进程爬虫153
8.3.2 使用Pool + Queue的多进程爬虫155
8.4 多协程爬虫158
8.5 总结160
第9章 反爬虫问题163
9.1 为什么会被反爬虫164
9.2 反爬虫的方式有哪些164
9.2.1 不返回网页165
9.2.2 返回非目标网页165
9.2.3 获取数据变难166
9.3 如何“反反爬虫”167
9.3.1 修改请求头167
9.3.2 修改爬虫的间隔时间168
9.3.3 使用代理171
9.3.4 更换IP地址172
9.3.5 登录获取数据172
9.4 总结172
第10章 解决中文乱码173
10.1 什么是字符编码174
10.2 Python的字符编码176
10.3 解决中文编码问题179
10.3.1 问题1:获取网站的中文显示乱码179
10.3.2 问题2:非法字符抛出异常180
10.3.3 问题3:网页使用gzip压缩181
10.3.4 问题4:读写文件的中文乱码182
10.4 总结184
第11章 登录与验证码处理185
11.1 处理登录表单186
11.1.1 处理登录表单186
11.1.2 处理cookies,让网页记住你的登录190
11.1.3 完整的登录代码193
11.2 验证码的处理194
11.2.1 如何使用验证码验证195
11.2.2 人工方法处理验证码197
11.2.3 OCR处理验证码200
11.3 总结203
第12章 服务器采集204

此书已加入到VIP会员卡,只要购买VIP会员卡即可免费阅读上百本电子书,这张VIP卡除了免费让你读书,还有更多的权益等你来领,往下↓拉
在这里插入图片描述

阅读电子书的方法如下:

打开CSDN APP(软件商城搜索“CSDN”即可找到哦)—>登录CSDN账号—>学习—>电子书

在这里插入图片描述

文章最后发布于: 2020-02-11

2020-03-09相关推荐

  1. E.03.09 China Tried to Slow Divorces by Making Couples Wait. Instead, They Rushed.

    2021.03.09 文章目录 [课程导读] [英文原文] [外刊原文] [课程导读] 2021年1月1日起,中国开始实施<民法典>.其中有关"离婚冷静期"的规定引发了 ...

  2. http://www.blogjava.net/beansoft/archive/2007/03/09/102812.html

    http://www.blogjava.net/beansoft/archive/2007/03/09/102812.html

  3. 2020.03.18模拟赛17(第二题)

    2.[GDKOI训练]音乐节拍(mnotes) 题目描述 FJ准备教他的奶牛弹奏一首歌曲,歌曲由N(1<=N<=50,000)种音节组成,编号为1到N,而且一定按照从1到N的顺序进行弹奏, ...

  4. 2020.03.18模拟赛17(第三题)

    3.[GDKOI训练]电视游戏问题(vidgame) 题目描述 农夫约翰的奶牛们游戏成瘾!本来FJ是想要按照陶教授的做法拿她们去电击戒瘾的,可是后来他发现奶牛们玩游戏之后比原先产更多的奶.很明显,这是 ...

  5. 2020链家杭州二手房数据分析(截止到2020年09月07日)

    2020链家杭州二手房数据分析(截止到2020年09月07日) 1 项目背景 通过python爬去链家杭州二手房的数据,网址为:https://hz.lianjia.com/ershoufang/.可 ...

  6. 2020年09月-电子学会青少年等级考试C语言(二级)真题与解析

    2020年09月软件编程(C语言)等级考试(二级) 分数:100   题数:5时间限制:1000 ms   内存限制:65536 kB 1.单词倒排 [题目描述]   编写程序,读入一行英文(只包含字 ...

  7. 【财经期刊FM-Radio|2020年09月25日】

    [财经期刊FM-Radio|2020年09月25日] 微信公众号: 张良信息咨询服务工作室 [今日热点新闻一览↓↓] 要闻: 欧股创三月新低,美股大震荡最终惊险收涨,期银抹平6%跌幅转涨,天然气两日高 ...

  8. 9月17日服务器维护,2020年09月17日维护公告

    亲爱的玩家: 为了保证服务器的稳定和服务质量,<大话西游2免费版>将于2020年09月17日早上8:00停机,进行每周例行的维护工作,维护时间为早上08:00至09:30,同时,本次停机还 ...

  9. 2020.03.19基于ES6.8.5,IK6.8.5,Kibana6.8.5的测试命令

    2020.03.19基于ES6.8.5,IK6.8.5,Kibana6.8.5的测试命令#全部查询 GET _search {"query": {"match_all&q ...

  10. 2020.03.11模拟赛15(第一题)

    1.水果盛宴(fruit) 题目描述 贝茜又再一次地闯入了 Farmer John 的房子!她在厨房发现了一堆柠檬和一堆橘子(每堆都有无限多个),并且,她希望尽可能地多吃. 贝茜的有一个饱腹值上限 T ...

最新文章

  1. Redis 难题突破,最经典 46 题含详细解析
  2. 深度洞悉2017企业IT三大关注焦点
  3. CentOS 6.7 RPM安装MySQL
  4. Android开源项目第二篇——工具库篇
  5. 深刻理解Python中的元类(metaclass)以及元类实现单例模式
  6. nginx+uwsgi+flask配置记录
  7. 10034 - Freckles 克鲁斯克尔最小生成树!~
  8. Spike Timing–Dependent Plasticity: A Hebbian Learning Rule ///STDP时空依赖可塑性
  9. 中国小伙CVPR 18论文遭质疑:同行难复现,要求评议组撤稿
  10. 我的web2.0作品:畅想网络应用系统(采用JavaScript、Jquery、Ajax 等制作,完成时间10天)...
  11. 拓端tecdat|R语言高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
  12. Dubbo入门详细教程
  13. 计算机组成原理第三版第四章,计算机组成原理第四章答案
  14. JDK9API网盘下载
  15. 施耐德 m340 编程手册_施耐德电气自动化软件汇总
  16. Java基础——链表
  17. html5积分墙联盟,积分墙平台有哪些(全面解读积分墙)
  18. 性格特点有哪些_各地区域文化不同,各省人的性格特点也千差万别之内蒙、四川...
  19. 二维码的生成与解析示例 生成二维码
  20. 奔图M9006DN复印机显示代码service error 191.10 engine error

热门文章

  1. android 监听手机屏幕唤醒和睡眠广播
  2. 从零搭建基于 Java 的服务器生产环境
  3. 【SDN】软件定义硬件
  4. 河南对口计算机本科学校有哪些,河南省计算机专业对口升学能上什么大学
  5. MATLAB 中 simulink 里的 scope显示图像格式的设置
  6. 智能交通系统计算机技术应用,计算机技术在智能交通系统中的应用.docx
  7. PyQt(Python+Qt)学习随笔:树型部件QTreeWidget中当前列currentColumn和选中项selectedItems访问方法
  8. 毕业了,让我们唱起这十首歌!
  9. 磨金石教育设计干货分享|20个海报设计小技巧,果断打包带走
  10. html文件能放病毒吗,防火墙能防病毒吗?