书籍 Python爬虫技术  深入理解原理、技术与开发的封面

Python爬虫技术 深入理解原理、技术与开发PDF电子书下载

李宁编著

购买点数

20

出版社

出版时间

2020

ISBN

标注页数

0 页

PDF页数

501 页

图书目录

第1篇 基础知识 2

第1章 开发环境配置 2

1.1安装官方的Python运行环境 2

1.2配置PATH环境变量 5

1.3安装Anaconda Python开发环境 6

1.4安装PyCharm 7

1.5配置PyCharm 8

1.6小结 10

第2章 爬虫基础 11

2.1 HTTP基础 11

2.1.1 URI和URL 11

2.1.2超文本 12

2.1.3 HTTP与HTTPS 12

2.1.4 HTTP的请求过程 15

2.1.5请求 17

2.1.6响应 20

2.2网页基础 23

2.2.1 HTML 23

2.2.2 CSS 24

2.2.3 CSS选择器 25

2.2.4 JavaScript 27

2.3爬虫的基本原理 27

2.3.1爬虫的分类 27

2.3.2爬虫抓取数据的方式和手段 28

2.4 Session与Cookie 28

2.4.1静态页面和动态页面 29

2.4.2无状态HTTP与Cookie 30

2.4.3利用Session和Cookie保持状态 30

2.4.4查看网站的Cookie 31

2.4.5 HTTP状态何时会失效 32

2.5实战案例:抓取所有的网络资源 33

2.6实战案例:抓取博客文章列表 37

2.7小结 40

第2篇 网络库 42

第3章 网络库urllib 42

3.1 urllib简介 42

3.2发送请求与获得响应 43

3.2.1用urlopen函数发送HTTP GET请求 43

3.2.2用urlopen函数发送HTTP POST请求 44

3.2.3请求超时 45

3.2.4设置HTTP请求头 46

3.2.5设置中文HTTP请求头 48

3.2.6请求基础验证页面 50

3.2.7搭建代理与使用代理 54

3.2.8读取和设置Cookie 56

3.3异常处理 60

3.3.1 URLError 60

3.3.2 HTTPError 61

3.4解析链接 62

3.4.1拆分与合并URL(urlparse与urlunparse) 62

3.4.2另一种拆分与合并URL的方式(urlsplit与urlunsplit) 63

3.4.3连接URL (urljoin) 65

3.4.4 URL编码(urlencode) 65

3.4.5编码与解码(quote与unquote) 66

3.4.6参数转换(parse_qs与parse_qsl) 66

3.5 Robots协议 67

3.5.1 Robots协议简介 67

3.5.2分析Robots协议 68

3.6小结 69

第4章 网络库urllib3 70

4.1 urllib3简介 70

4.2 urllib3模块 70

4.3发送HTTP GET请求 71

4.4发送HTTPPOST请求 72

4.5 HTTP请求头 74

4.6 HTTP响应头 76

4.7上传文件 76

4.8超时 78

4.9小结 79

第5章 网络库requests 80

5.1基本用法 80

5.1.1 requests的HelloWorld 81

5.1.2 GET请求 81

5.1.3添加HTTP请求头 82

5.1.4抓取二进制数据 83

5.1.5 POST请求 84

5.1.6响应数据 85

5.2高级用法 87

5.2.1上传文件 88

5.2.2处理Cookie 89

5.2.3使用同一个会话(Session) 90

5.2.4 SSL证书验证 91

5.2.5使用代理 94

5.2.6超时 95

5.2.7身份验证 97

5.2.8将请求打包 97

5.3小结 98

第6章 Twisted网络框架 99

6.1异步编程模型 99

6.2 Reactor(反应堆)模式 101

6.3 HelloWorld, Twisted框架 101

6.4用Twisted实现时间戳客户端 103

6.5用Twisted实现时间戳服务端 104

6.6小结 105

第3篇 解析库 108

第7章 正则表达式 108

7.1使用正则表达式 108

7.1.1使用match方法匹配字符串 108

7.1.2使用search方法在一个字符串中查找模式 109

7.1.3匹配多个字符串 110

7.1.4匹配任何单个字符 111

7.1.5使用字符集 112

7.1.6重复、可选和特殊字符 114

7.1.7分组 117

7.1.8匹配字符串的起始和结尾以及单词边界 118

7.1.9使用findall和finditer查找每一次出现的位置 120

7.1.10用sub和subn搜索与替换 121

7.1.11使用split分隔字符串 122

7.2一些常用的正则表达式 123

7.3项目实战:抓取小说目录和全文 124

7.4项目实战:抓取猫眼电影Top 100榜单 128

7.5项目实战:抓取糗事百科网的段子 133

7.6小结 136

第8章 Ixml与XPath 137

8.1 lxml基础 137

8.1.1安装lxml 137

8.1.2操作XML 138

8.1.3操作HTML 140

8.2 XPath 141

8.2.1 XPath概述 141

8.2.2使用XPath 141

8.2.3选取所有节点 143

8.2.4选取子节点 145

8.2.5选取父节点 146

8.2.6属性匹配与获取 146

8.2.7多属性匹配 147

8.2.8按序选择节点 148

8.2.9节点轴选择 149

8.2.10在Chrome中自动获得XPath代码 151

8.2.11使用Chrome验证XPath 153

8.3项目实战:抓取豆瓣Top250图书榜单 154

8.4项目实战:抓取起点中文网的小说信息 158

8.5小结 161

第9章 Beautiful Soup库 162

9.1 Beautiful Soup简介 162

9.2 Beautiful Soup基础 162

9.2.1安装Beautiful Soup 163

9.2.2选择解析器 164

9.2.3编写第一个Beautiful Soup程序 164

9.3节点选择器 165

9.3.1选择节点 165

9.3.2嵌套选择节点 167

9.3.3选择子节点 168

9.3.4选择父节点 171

9.3.5选择兄弟节点 172

9.4方法选择器 174

9.4.1 find all方法 174

9.4.2 find方法 177

9.5 CSS选择器 178

9.5.1基本用法 179

9.5.2嵌套选择节点 180

9.5.3获取属性值与文本 181

9.5.4通过浏览器获取CSS选择器代码 182

9.6实战案例:抓取租房信息 184

9.7实战案例:抓取酷狗网络红歌榜 188

9.8小结 191

第10章 pyquery库 192

10.1 pyquery简介 192

10.2 pyquery基础 192

10.2.1安装pyquery 193

10.2.2 pyquery的基本用法 193

10.3 CSS选择器 194

10.4查找节点 196

10.4.1查找子节点 196

10.4.2查找父节点 197

10.4.3查找兄弟节点 198

10.4.4获取节点信息 199

10.5修改节点 203

10.5.1添加和移除节点的样式(addClass和removeClass) 204

10.5.2修改节点属性和文本内容(attr、 removeAttr、 text和html) 205

10.5.3删除节点(remove) 207

10.6伪类选择器 208

10.7项目实战:抓取当当图书排行榜 210

10.8项目实战:抓取京东商城手机销售排行榜 213

10.9小结 219

第4篇 数据存储 222

第11章 文件存储 222

11.1打开文件 222

11.2操作文件的基本方法 224

11.2.1读文件和写文件 224

11.2.2读行和写行 226

11.3使用Filelnput对象读取文件 227

11.4处理XML格式的数据 228

11.4.1读取与搜索XML文件 228

11.4.2字典转换为XML字符串 229

11.4.3 XML字符串转换为字典 231

11.5处理JSON格式的数据 232

11.5.1 JSON字符串与字典互相转换 233

11.5.2将JSON字符串转换为类实例 234

11.5.3将类实例转换为JSON字符串 236

11.5.4类实例列表与JSON字符串互相转换 236

11.6将JSON字符串转换为XML字符串 237

11.7 CSV文件存储 238

11.7.1写入CSV文件 238

11.7.2读取CSV文件 241

11.8小结 241

第12章 数据库存储 242

12.1 SQLite数据库 242

12.1.1管理SQLite数据库 243

12.1.2用Python操作SQLite数据库 245

12.2 MySQL数据库 247

12.2.1安装MySQL 247

12.2.2在Python中使用MySQL 250

12.3非关系型数据库 253

12.3.1 NoSQL简介 253

12.3.2 MongoDB数据库 253

12.3.3 pymongo模块 255

12.4项目实战:抓取豆瓣音乐排行榜 256

12.5项目实战:抓取豆瓣电影排行榜 260

12.6小结 264

第5篇 爬虫高级应用 266

第13章 抓取异步数据 266

13.1异步加载与AJAX 266

13.2基本原理 267

13.3逆向工程 270

13.4提取结果 274

13.5项目实战:支持搜索功能的图片爬虫 274

13.6项目实战:抓取京东图书评价 279

13.7小结 284

第14章 可见即可爬:Selenium 285

14.1安装Selenium 286

14.2安装WebDriver 286

14.2.1安装ChromeDriver 287

14.2.2装Edge WebDriver 288

14.2.3安装其他浏览器的WebDriver 289

14.3 Selenium的基本使用方法 289

14.4查找节点 293

14.4.1查找单个节点 293

14.4.2查找多个节点 295

14.5节点交互 297

14.6动作链 298

14.7执行JavaScript代码 301

14.8获取节点信息 302

14.9管理Cookies 303

14.10改变节点的属性值 304

14.11项目实战:抓取QQ空间说说的内容 306

14.12小结 308

第15章 基于Splash的爬虫 309

15.1 Splash基础 309

15.1.1 Splash功能简介 309

15.1.2安装Docker 310

15.1.3安装Splash 310

15.2 Splash Lua脚本 312

15.2.1第一个Lua脚本 312

15.2.2异步处理 313

15.2.3 Splash对象属性 314

15.2.4 go方法 318

15.2.5 wait方法 319

15.2.6 jsfunc方法 320

15.2.7 evaljs方法 320

15.2.8 runjs方法 320

15.2.9 autoload方法 321

15.2.10 call_later方法 322

15.2.11 http_get方法 323

15.2.12 http_post方法 324

15.2.13 set_content方法 325

15.2.14 html方法 325

15.2.15 png方法 326

15.2.16 jpeg方法 326

15.2.17 har方法 326

15.2.18其他方法 327

15.3使用CSS选择器 331

15.3.1 select方法 331

15.3.2 select_all方法 332

15.4模拟鼠标和键盘的动作 333

15.5 Splash HTTP API 334

15.6项目实战:使用Splash Lua抓取京东搜索结果 338

15.7小结 340

第16章 抓取移动App的数据 341

16.1使用Charles 341

16.1.1抓取HTTP数据包 342

16.1.2安装PC端证书 344

16.1.3在手机端安装证书 345

16.1.4监听HTTPS数据包 346

16.2使用mitmproxy 348

16.2.1安装mitmproxy 348

16.2.2在PC端安装mitmproxy证书 349

16.2.3在移动端安装mitmproxy证书 352

16.2.4 mitmproxy有哪些功能 353

16.2.5设置手机的代理 353

16.2.6用mitmproxy监听App的请求与响应数据 354

16.2.7使用mitmproxy编辑请求信息 356

16.2.8 mitmdump与Python对接 357

16.2.9使用mitmweb监听请求与响应 361

16.3项目实战:实时抓取“得到”App在线课程 363

16.4小结 367

第17章 使用Appium在移动端抓取数据 368

17.1安装Appium 368

17.1.1安装Appium桌面端 368

17.1.2配置Android开发环境 370

17.1.3配置iOS开发环境 371

17.2 Appium的基本使用方法 372

17.2.1启动Appium服务 372

17.2.2查找Android App的Package和入口Activity 374

17.2.3控制App 376

17.3使用Python控制手机App 379

17.4 AppiumPythonClient API 380

17.4.1初始化(Remote类) 380

17.4.2查找元素 381

17.4.3单击元素 381

17.4.4屏幕拖动 382

17.4.5屏幕滑动 382

17.4.6拖曳操作 383

17.4.7文本输入 383

17.4.8动作链 383

17.5项目实战:利用Appium抓取微信朋友圈信息 384

17.6小结 388

第18章 多线程和多进程爬虫 389

18.1线程与进程 389

18.1.1进程 389

18.1.2线程 390

18.2 Python与线程 390

18.2.1使用单线程执行程序 390

18.2.2使用多线程执行程序 391

18.2.3为线程函数传递参数 393

18.2.4线程和锁 394

18.3高级线程模块(threading) 395

18.3.1 Thread类与线程函数 395

18.3.2 Thread类与线程对象 396

18.3.3从Thread类继承 398

18.4线程同步 399

18.4.1线程锁 400

18.4.2信号量 402

18.5生产者—消费者问题与queue模块 405

18.6多进程 407

18.7项目实战:抓取豆瓣音乐Top250排行榜(多线程版) 408

18.8项目实战:抓取豆瓣音乐Top250排行榜(多进程版) 411

18.9小结 412

第19章 网络爬虫框架:Scrapy 413

19.1 Scrapy基础知识 413

19.1.1 Scrapy简介 413

19.1.2 Scrapy安装 414

19.1.3 Scrapy Shell抓取Web资源 415

19.2用Scrapy编写网络爬虫 417

19.2.1创建和使用Scrapy工程 417

19.2.2在PyCharm中使用Scrapy 419

19.2.3在PyCharm中使用扩展工具运行Scrapy程序 421

19.2.4使用Scrapy抓取数据,并通过XPath指定解析规则 423

19.2.5将抓取到的数据保存为多种格式的文件 424

19.2.6使用ItemLoader保存单条抓取的数据 426

19.2.7使用ItemLoader保存多条抓取的数据 428

19.2.8抓取多个URL 430

19.3 Scrapy的高级应用 431

19.3.1处理登录页面 431

19.3.2处理带隐藏文本框的登录页面 434

19.3.3通过API抓取天气预报数据 436

19.3.4从CSV格式转换到JSON格式 443

19.3.5下载器中间件 447

19.3.6爬虫中间件 452

19.3.7 Item管道 455

19.3.8通用爬虫 465

19.4小结 474

第20章 综合爬虫项目:可视化爬虫 475

20.1项目简介 475

20.2主界面设计和实现 477

20.3获取商品页数和每页商品数 478

20.4并发抓取商品列表 479

20.5数据库操作类 481

20.6情感分析 484

20.7抓取和分析商品评论数据 485

20.8可视化评论数据 486

20.9小结 488

查看更多关于的内容

出版社其它书籍
本类热门
在线购买PDF电子书
下载此书RAR压缩包