×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
Python爬虫与反爬虫开发从入门到精通

Python爬虫与反爬虫开发从入门到精通

1星价 ¥69.3 (7.0折)
2星价¥69.3 定价¥99.0
暂无评论
图文详情
  • ISBN:9787301322697
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:388
  • 出版时间:2021-08-01
  • 条形码:9787301322697 ; 978-7-301-32269-7

本书特色

学爬虫:知原理,抓数据,做分析,用自动化解放双手 会反爬:懂框架,会部署,见招拆招,攻防兼备 在攻与防的对立统一中寻求爬虫技术突破

内容简介

随着网络技术的迅速发展,如何有效地提取并利用信息,以及如何有效地防止信息被爬取,已成为一个巨大的挑战。本书从零开始系统地介绍了Python网络爬虫与反爬虫的开发与实战技能,全书共分为4篇,具体内容安排如下。 篇:基础篇(~3章)。系统地讲解了Python爬虫与反爬虫开发环境的搭建、爬虫与反爬虫通用基础知识、Python编程基础。 第2篇:爬虫篇(第4~8章)。这部分讲解了网络爬虫的相关知识与技能,主要包括网络爬虫快速入门、XPath匹配网页数据、re正则匹配数据、WebSocket数据抓取、Scrapy爬虫框架应用与开发等。 第3篇:反爬虫篇(第9~16章)。这部分讲解了网络反爬虫的相关知识与技能,主要包括爬虫与反爬虫的区别与认识、反爬—Header信息校验、反爬—IP、反爬—动态渲染页面、反爬—文本混淆、反爬—特征识别、反爬—验证码识别、反爬—APP数据抓取等。 第4篇:实战篇(7章)。本篇主要列举了4个案例,综合讲解Python爬虫与反爬虫项目的实战应用。 本书从零基础开始讲解,系统全面,案例丰富,注重实战,既适合Python程序员和爬虫爱好者阅读学习,也可以作为广大职业院校相关专业的教材或参考用书。

目录

目录
Contents

第1篇 基础篇
第1章 爬虫与反爬虫开发环境搭建 /2
1.1 Python 3环境搭建 /3
1.1.1 下载Python 3安装包 /3
1.1.2 安装Python /4
1.1.3 pip包管理工具 /6
1.2 PyCharm的安装与基本使用 /7
1.2.1 安装PyCharm /7
1.2.2 创建Python项目 /8
1.2.3 debug调试代码 /12
1.2.4 创建venv虚拟环境 /14
1.3 Tesseract-OCR /16
1.3.1 下载 /16
1.3.2 安装 /17
1.3.3 配置环境变量 /18
1.4 mitmproxy /18
1.4.1 下载 /19
1.4.2 安装 /20
1.4.3 安装SSL证书 /21
1.5 JDK 1.8 /22
1.5.1 下载JDK /22
1.5.2 安装 /22
1.5.3 测试是否安装成功 /23
本章小结 /24

第2章 爬虫与反爬虫通用基础知识 /25
2.1 网页基础 /26
2.1.1 网页的组成 /26
2.1.2 网页的类型 /28
2.2 网络传输协议 /28
2.2.1 认识HTTP /29
2.2.2 HTTPS /29
2.2.3 HTTP与HTTPS请求过程示例 /29
2.3 Session和Cookies /31
2.3.1 Cookie /31
2.3.2 Session /33
2.3.3 Session和Cookie的区别 /33
2.3.4 常见误区 /33
2.4 Nginx服务器 /34
2.4.1 Nginx信号 /34
2.4.2 反向代理 /35
2.4.3 Nginx中实现反向代理 /35
2.5 代理IP /36
2.5.1 原理 /36
2.5.2 分类 /37
2.5.3 获取途径 /37
2.6 HTTP接口概念 /40
2.7 新手问答 /40
本章小结 /41

第3章 Python编程基础 /42
3.1 Python的基础语法 /43
3.1.1 **个Python程序 /43
3.1.2 运行程序 /43
3.1.3 注释 /46
3.1.4 行与缩进 /46
3.1.5 多行语句 /47
3.1.6 import 与 from...import导入模块 /48
3.1.7 变量 /48
3.2 基本数据类型 /49
3.2.1 Number /49
3.2.2 String /50
3.2.3 List /50
3.2.4 Tuple /52
3.2.5 Dictionary /52
3.2.6 Set /53
3.2.7 布尔类型 /54
3.3 流程控制 /55
3.3.1 条件控制 /55
3.3.2 循环 /56
3.3.3 range()函数 /58
3.3.4 break和continue语句 /58
3.3.5 pass /59
3.4 函数 /60
3.4.1 定义一个函数 /60
3.4.2 调用函数 /60
3.5 文件操作 /61
3.5.1 txt文件读写 /61
3.5.2 csv文件读写 /62
3.6 面向对象 /64
3.6.1 类 /64
3.6.2 类对象 /65
3.6.3 类方法 /66
3.6.4 继承 /67
3.7 多线程 /68
3.7.1 threading /68
3.7.2 多线程装饰器封装 /69
3.8 新手实训 /70
3.9 新手问答 /71
本章小结 /72

第2篇 爬虫篇
第4章 网络爬虫快速入门 /74
4.1 爬虫的基本结构及工作流程 /75
4.2 urllib网络请求库 /75
4.2.1 请求一个简单的网页 /75
4.2.2 设置请求超时 /78
4.2.3 使用data参数提交数据 /78
4.2.4 Request /79
4.3 requests网络请求库 /82
4.3.1 requests模块的安装 /82
4.3.2 请求**个网页 /82
4.3.3 get和post请求 /84
4.3.4 参数提交 /86
4.4 urllib3网络请求库 /86
4.4.1 发起请求 /87
4.4.2 响应内容 /88
4.4.3 查询参数 /88
4.4.4 表单数据 /89
4.4.5 提交JSON数据 /89
4.5 Postman接口测试工具 /90
4.5.1 请求接口 /90
4.5.2 常用功能介绍 /93
4.6 新手实训 /95
4.7 新手问答 /95
本章小结 /96

第5章 XPath匹配网页数据 /97
5.1 安装XPath /98
5.2 XPath的基础语法 /98
5.3 在Python中使用XPath匹配数据 /99
5.3.1 根据class属性进行匹配 /100
5.3.2 根据id属性进行匹配 /101
5.3.3 根据name属性进行匹配 /102
5.4 XPath表达式技巧 /103
5.5 扩展补充知识点 /105
5.5.1 Selector /105
5.5.2 Beautiful Soup /106
5.6 新手实训 /107
5.7 新手问答 /109
本章小结 /109

第6章 re正则匹配数据 /110
6.1 re.compile函数 /111
6.2 re.match函数 /111
6.3 re.search函数 /113
6.4 re.match与re.search的区别 /114
6.5 检索和替换 /114
6.6 findall函数 /115
6.7 常见正则表达式写法 /116
6.8 新手实训 /117
6.9 新手问答 /119
本章小结 /120

第7章 WebSocket数据抓取 /121
7.1 WebSocket通信原理 /122
7.2 使用aioWebSocket获取数据 /122
7.2.1 安装AioWebSocket /123
7.2.2 分析WebSocket请求 /123
7.2.3 编写代码获取数据 /126
7.3 新手实训 /129
7.4 新手问答 /131
本章小结 /131

第8章 Scrapy爬虫框架应用与开发 /132
8.1 Scrapy框架的基本架构 /133
8.1.1 Scrapy的基本组件 /133
8.1.2 工作原理 /133
8.2 安装Scrapy /134
8.3 创建项目 /135
8.4 定义Item /135
8.5 编写**个Spider /136
8.6 运行爬虫 /137
8.7 提取Item /137
8.8 在Shell中尝试Selector选择器 /138
8.9 提取数据 /139
8.10 使用Item /140
8.11 Item Pipeline /141
8.12 将Item写入JSON文件 /142
8.13 新手实训 /143
8.14 新手问答 /146
本章小结 /146

第3篇 反爬虫篇
第9章 爬虫与反爬虫 /148
9.1 爬虫知识的回顾与总结 /149
9.1.1 爬虫的爬取过程 /149
9.1.2 案例演示 /149
9.2 反爬虫的概念与定义 /154
本章小结 /155

第10章 反爬—Header信息校验 /156
10.1 User-Agent /157
10.1.1 如何应对User-Agent反爬 /157
10.1.2 User-Agent反爬原理 /161
10.2 Cookie校验 /162
10.2.1 如何应对Cookie反爬 /162
10.2.2 Cookie反爬原理 /163
10.3 Referer校验 /165
10.3.1 Referer的反爬原理 /165
10.3.2 应对方法 /165
10.4 签名校验 /166
10.4.1 签名反爬原理 /166
10.4.2 应对方法 /166
10.5 新手实训 /170
10.6 新手问答 /176
本章小结 /176

第11章 反爬—IP限制 /177
11.1 代理设置 /178
11.1.1 urllib代理设置 /178
11.1.2 requests代理设置 /179


11.2 代理池构建 /17911.2.1 获取IP /180
11.2.2 验证代理是否可用 /181
11.2.3 使用代理池 /182
11.3 搭建自己的代理服务器 /183
11.3.1 什么是ADSL /183
11.3.2 购买代理云主机 /183
11.3.3 测试拨号 /185
11.3.4 设置代理服务器 /188
11.3.5 动态获取IP /190
11.3.6 使用Python实现拨号 /192
11.4 使用Nginx实现封禁IP /194
11.5 新手问答 /195
本章小结 /196

第12章 反爬—动态渲染页面 /197
12.1 动态渲染案例介绍 /198
12.1.1 单击事件 /198
12.1.2 异步加载数据 /199
12.1.3 焦点事件 /200
12.2 常见应对动态渲染页面的解决办法 /201
12.3 使用Selenium爬取动态渲染页面 /201
12.3.1 安装Selenium库 /202
12.3.2 Selenium定位方法 /203
12.3.3 控制浏览器操作 /204
12.3.4 WebDriver常用方法 /206
12.3.5 其他常用方法 /207
12.3.6 鼠标键盘事件 /208
12.3.7 获取断言 /211
12.3.8 设置元素等待 /212
12.3.9 多表单切换 /214
12.3.10 下拉框选择 /215
12.3.11 调用JavaScript代码 /216
12.3.12 窗口截图 /217
12.3.13 无头模式 /217
12.4 获取浏览器Network请求和响应 /218
12.4.1 Browsermob-Proxy /219
12.4.2 获取接口返回数据 /220
12.4.3 二级代理 /222
12.5 新手实训 /222
12.6 新手问答 /224
本章小结 /225

第13章 反爬—文本混淆 /226
13.1 图片伪装反爬 /227
13.1.1 飞常准航班动态信息 /227
13.1.2 分析网站 /228
13.1.3 应对方案 /230
13.1.4 代码实现 /230
13.2 CSS偏移反爬 /231
13.2.1 去哪儿网 /231
13.2.2 分析网站 /232
13.2.3 代码实现 /235
13.3 编码映射反爬 /238
13.3.1 大众点评网 /238
13.3.2 分析网站 /239
13.3.3 代码实现 /240
13.4 字体反爬 /242
13.4.1 美团手机版网页 /242
13.4.2 分析网站 /243
13.4.3 代码实现 /247
13.5 新手实训 /248
13.6 新手问答 /252
本章小结 /252

第14章 反爬—特征识别 /253
14.1 浏览器指纹 /254
14.1.1 浏览器指纹实现技术有哪些 /254
14.1.2 防止浏览器指纹检测方法 /254
14.1.3 防客户端追踪措施 /255
14.2 WebDriver驱动识别 /255
14.2.1 WebDriver识别示例 /255
14.2.2 WebDriver识别原理 /257
14.2.3 如何绕过被识别 /259
14.3 使用mitmproxy /262
14.3.1 认识mitmproxy /262
14.3.2 工作原理 /263
14.3.3 使用mitmproxy绕过驱动检测 /263
14.4 网页精灵 /269
14.4.1 安装网页精灵 /270
14.4.2 网页精灵的简单使用 /271
14.5 新手实训 /275
14.6 新手问答 /277
本章小结 /277

第15章 反爬—验证码识别 /278
15.1 普通图形验证码 /279
15.1.1 识别图形验证码的解决方案 /279
15.1.2 OCR识别图形验证码 /279
15.1.3 采用第三方打码平台识别 /280
15.2 滑动验证码 /281
15.2.1 分析思路 /282
15.2.2 使用Selenium实现模拟淘宝登录的拖动验证 /282
15.3 滑动拼图验证码 /285
15.3.1 分析思路 /285
15.3.2 使用代码实现滑动 /285
15.3.3 运行测试 /291
15.4 新手实训 /292
15.5 新手问答 /294
本章小结 /295

第16章 反爬—APP数据抓取 /296
16.1 APP的抓包分析 /297
16.1.1 Fiddler抓包工具 /297
16.1.2 Fiddler设置 /297
16.1.3 使用Fiddler抓包猎聘APP测试 /299
16.1.4 Charles抓包工具 /300
16.1.5 Charles设置 /301
16.1.6 Charles抓包 /304
16.1.7 Charles分析 /307
16.1.8 Charles重发 /309
16.2 Appium自动化 /310
16.2.1 安装Appium /311
16.2.2 Android开发环境配置 /312
16.2.3 启动APP /313
16.2.4 appPackage和appActivity参数获取方法 /322
16.3 APK安装包反编译 /324
16.3.1 准备工作 /324
16.3.2 反编译得到源码 /324
16.4 APK反编译知识补充 /327
16.5 新手实训 /327
16.6 新手问答 /332
本章小结 /332

第4篇 实战篇
第17章 项目实战 /334
17.1 土地市场网——地块公示 /335
17.1.1 分析网站 /336
17.1.2 代码实现 /342
17.1.3 实例总结 /348
17.2 纽约工商数据采集 /348
17.2.1 分析网站 /348
17.2.2 编写代码爬取 /351
17.2.3 实例总结 /356
17.3 携程旅行火车票票价数据采集 /356
17.3.1 分析网站 /358
17.3.2 编写代码爬取 /360
17.3.3 实例总结 /361
17.4 智联招聘数据采集 /361
17.4.1 分析网站 /362
17.4.2 编写代码爬取 /365
17.4.3 实例总结 /367

附录A 爬虫法律法规 /368
附录B 实验环境的搭建方法及说明 /371
附录C Python常见面试题精选 /375

展开全部

节选

2.3 Session和Cookies 在浏览网站的过程中,我们经常会遇到需要登录的情况,有些页面需要登录之后才能访问,而 且登录之后可以连续很多次访问该网站,但是有的时候过一段时间就需要重新登录。还有一些网站 在打开浏览器的时候就自动登录了,而且很长时间都不会失效,这种情况是什么原因呢?因为这里 面涉及会话(Session)和Cookies 的相关知识,下面就来揭开它们的神秘面纱。 2.3.1 Cookie Cookie 实际上是一小段的文本信息,通过键值对格式(key-value)来表示。其原理是客户端向 服务器发起请求,如果服务器需要记录该用户状态,就在响应客户端的时候向客户端浏览器发送一 个Cookie,客户端浏览器会把Cookie 保存起来。当浏览器再请求该网站时,浏览器把请求的网址 32 Python 爬虫与反爬虫开发从入门到精通 连同该Cookie 一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。 所以这就是为什么我们在访问某些网站的时候,输入用户名、密码进行了登录,几天后再次打 开电脑访问该网站时就会自动登录。这是因为浏览器保存了我们的Cookie 到一个文件中。当我们 重新访问页面,它会自动读取上次保存的Cookie 文件中的内容并且传给了服务端。如果手动清除 了浏览器历史访问记录,也会清除相关的Cookie 文件,当再次访问页面的时候,就需要重新登录了。 Cookie 在使用的时候,是携带在客户端浏览器向服务端发起请求的Header 里面,格式如下: Key=value Cookie 里面会包含多个参数,参数之间使用分号间隔,如图2-5 所示。 图2-5 飞常准Cookie 图2-5 展示的是“飞常准”手机版的一个页面,请求里面携带了Cookie 信息,至于如何查看 Cookie,将会在后面的章节中讲到,这里读者只需要理解Cookie 的基本概念即可。Cookie 中有几 个比较重要的属性,如表2-1 所示。 表2-1 Cookie 的基本属性 属性属性介绍 Name=value 键值对,可以设置要保存的 Key/Value,注意这里的 NAME 不能和其他属性项的名字一样 Expires 过期时间,在设置的某个时间点后该 Cookie 就会失效 Domain 生成该 Cookie 的域名,如 domain="www.lyl.com" Path 指该Cookie 是在当前的哪个路径下生成的,如 path=/wp-admin/ Secure 如果设置了这个属性,那么只会在 SSH 连接时才会回传该 Cookie 第2 章 爬虫与反爬虫通用基础知识 33 2.3.2 Session Session 代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续。Session 是一种服务器端的机制,Session 对象用来存储特定用户会话所需的信息。Session 由服务端生成, 保存在服务器的内存、缓存、硬盘或数据库中。 它的主要工作原理是:当用户访问到一个服务器,如果服务器启用Session,服务器就要为该 用户创建一个Session,在创建这个Session 的时候,服务器首先检查这个用户发来的请求里是否包 含了一个Session ID,如果包含了一个Session ID,则说明之前该用户已经登录过并为此用户创建 过Session,那服务器就按照这个Session ID 在服务器的内存中查找(如果查找不到,就有可能为 它新创建一个),如果客户端请求里不包含Session ID,则为该客户端创建一个Session 并生成一 个与此Session 相关的Session ID。这个Session ID 是唯一的、不重复的、不容易找到规律的字符串, 它将在本次响应中被返回到客户端保存,而保存这个Session ID 的正是Cookie,这样在交互过程中 浏览器可以自动按照规则把这个标识发送给服务器。 2.3.3 Session和Cookie的区别 了解了Session 和Cookie 的基本原理,接下来再来浅谈一下它们之间的区别。Session 是存储 在服务器端的,Cookie 是存储在客户端的,所以Session 的安全性要高于Cookie。再者,我们获取 的Session 里的信息是通过存放在会话Cookie 里的Session ID 获取的,因为Session 是存放在服务 器里的,所以Session 里的东西不断增加会加重服务器的负担。因此,我们可以把一些重要的东西 放在Session 里,不太重要的放在客户端Cookie 里。Cookie 分为两大类,分别是会话Cookie 和持 久化Cookie,它们的生命周期和浏览器是一致的,浏览器关了,会话Cookie 也就消失了,而持久 化Cookie 会存储在客户端硬盘中。当浏览器关闭的时候会话Cookie 也会消失,所以我们的Session 也就消失了。Session 在什么情况下会丢失呢?就是在服务器关闭的时候,或者是Session 过期(默 认30 分钟)了。 2.3.4 常见误区 在谈论会话机制的时候,常常会有这样的误解:“只要关闭浏览器,会话就消失了。”可以想 象一下银行卡的例子,除非客户主动销卡,否则银行绝对不会轻易销卡,删除客户的资料信息。对 于会话机制来说也是一样,除非程序通知服务器删除一个会话,否则服务器会一直保留。 当我们关闭浏览器时,浏览器不会在关闭之前主动通知服务器它将会关闭,所以服务器根本就 不知道浏览器即将关闭。之所以会有“只要关闭浏览器,会话就消失了”这种错觉,是因为大部分 会话机制都会使用会话Cookie 来保存会话ID 信息,而关闭浏览器之后Cookies 就消失了,再次连 接服务器时,也就无法找到原来的会话了。如果服务器设置的Cookies 保存到硬盘上,或者使用某 种手段改写浏览器发出的HTTP 请求头,把原来的Cookies 发送给服务器,再次打开浏览器,仍然 能够找到原来的会话ID,依旧还是可以保持登录状态的。 34 Python 爬虫与反爬虫开发从入门到精通 而且正是由于关闭浏览器不会导致会话被删除,这就需要服务器为会话Cookie 设置一个失效 时间,当距离客户端上一次使用会话的时间超过这个失效时间时,服务器就可以认为客户端已经停 止了活动,才会把会话删除,以节省存储空间。 2.4 Nginx服务器 Nginx 是一个高性能的HTTP 和反向代理Web 服务器,我们日常所见的大多数网站或APP 后 台服务接口都有用到Nginx。当然除了Nginx,其他还有很多常见的Web 服务器,如Apache、 Tomcat、IIS 等。有兴趣的读者可以上网了解一下,这里不一一进行讲解。在这里只是简单地介绍 一下关于Nginx 的一些常见知识点和应用场景,目的是有利于读者对后面将要学习的章节内容有一 些了解。 2.4.1 Nginx信号 通过信号可以来控制Nginx 的工作状态,也可以理解为传达命令。它可以在终端控制Nginx 的 启动、停止、重载等。其语法格式如下: nginx -s 信号名称 常用的信号名称有以下几种。 (1)stop:快速关闭Nginx 服务。 (2)reload:重新加载配置文件启动Nginx。 (3)start:快速启动Nginx。 (4)quit:正常流程关闭Nginx 服务。 如果我们需要停止Nginx 服务,可以在终端向Nginx 发送一个信号进行关闭,根据实际情况选 择关闭名称。 快速地关闭命令如下: nginx -s stop 反之,如果要通过正常流程关闭,则命令如下: nginx -s quit 当Nginx 的配置文件被更改或添加了新的配置内容时,它们不会立即生效,如果想要配置立即 生效,就需要将Nginx 关闭重启或通过重新加载配置文件启动的方式实现。假如我们希望Nginx 在 不影响当前任务执行的情况下重新加载配置,使用reload 信号即可,命令如下: nginx -s reload 第2 章 爬虫与反爬虫通用基础知识 35 Nginx 在收到重新加载配置的信号之后,它会首先检查配置文件的语法是否有效,并且尝试应 用其中的配置,如果成功,Nginx 将会启动一个新的进程进行工作,同时会发一个信号去关闭旧的 的工作进程。如果失败,它则会回滚任务,并继续使用旧的配置文件执行旧的工作任务。如果读者 想了解Nginx 更多的相关的知识,可以前往Nginx 官方网站查阅。 2.4.2 反向代理 反向代理出现的作用是隐藏真实服务器的IP 地址等信息。其原理是客户端在访问网站获取数 据的时候,发送的请求会先经过反向代理服务器,由反向代理服务器去选择目标服务器获取数据后, 再返回给客户端。此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地 址,隐藏了真实的服务器IP 地址。 例如,这里有两台服务器,假如A 服务器是代理服务器,其IP 地址为192.168.1.1,B 服务器 上部署了网站真实的后台服务,其IP 地址为192.168.1.2。未使用反向代理之前,按照正常的逻辑, 我们要访问网站的服务器,直接请求192.168.1.2 地址就可以了,响应给我们的请求头信息里面会 包含服务器B 的IP 地址。反之,如果使用反向代理,则我们请求的地址应该是服务器A,A 服务 器接到我们的请求之后,会去B 那儿获取数据,并返回给我们,然而此时返回的响应请求头信息 中显示的IP 地址为A 的地址,同时也拿到了我们需要的数据。但是,我们并不能直接看到请求的 这个数据真实的来源是哪里。 可以通俗地理解,就跟我们委托别人帮买东西一样,我们表达了需要什么东西并且把钱给他之 后,他就去买了,但是他将东西交给我们的时候,我们并不知道他是从哪个商铺买的。反向代理的 原理也是如此,如图2-6 所示。 图2-6 反向代理原理 2.4.3 Nginx中实现反向代理 要使用Nginx 实现反向代理,只需要在反向代理服务器上的Nginx 配置文件中添加一项简单的 配置即可,如下所示。 36 Python 爬虫与反爬虫开发从入门到精通 server { listen 80; server_name www.liuyanlin.cn; location/{ proxy_pass http://127.0.0.1:5000; index index.html; } } 通过配置重载Nginx 之后,在浏览器中访问www.liuyanlin.cn 这个网站,将会跳转到笔者本机 电脑运行的一个网站服务http://127.0.0.1:5000 上,至此就实现了一个简单的反向代理过程。 2.5 代理IP 在2.4 节中,我们了解了Nginx 实现反向代理的原理及基本概念,接着趁热打铁再来了解一下 代理IP。代理IP 在我们后面章节所要学习的爬虫中起着至关重要的作用。接下来将对代理的基本 原理和分类做一个简单的讲解。 2.5.1 原理 代理服务器的工作机制很像我们生活中常常提及的代理商,假设你的机器为A 机,你想获得的 数据由B 机提供,代理服务器为C 机,那么具体的连接过程是这样的:首先,你的A 机需要B 机的 数据,它就要与C 机建立连接,C 机接收到A 机的数据请求之后,与B 机建立连接,根据A 机发送 的请求去B 机上下载相应的数据到本地,再将此数据发送至A 机,完成代理任务。其原理如图2-7 所示。 图2-7 代理原理图 第2 章 爬虫与反爬虫通用基础知识 37 那么代理IP 就是指的代理服务器的IP 地址,通过IP 地址我们可以连接代理服务器或对其传 输数据等。

作者简介

刘延林,云镜团队创始人,拥有多年网络爬虫开发经验,著有《Python网络爬虫开发从入门到精通》,擅长Python网络爬虫、Web、数据挖掘与分析、网络安全、产品研发等领域。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航