热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python与爬虫技术_Python爬虫技术(深入理解原理技术与开发)/宁哥大讲堂

第1篇基础知识第1章开发环境配置21.1安装官方的Python运行环境21.2配置PATH环境变量51.3安装AnacondaPython开发环境61.4安装PyCharm71.5

第1篇基础知识

第1章开发环境配置 2

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

1.2 配置 PATH环境变量 5

1.3 安装 Anaconda Python开发环境 6

1.4 安装 PyCharm 7

1.5 配置 PyCharm 8

第2章爬虫基础 11

2.1 HTTP基础 11

...

2.2 网页基础 23

2.2.1 HTML 23

...

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.5 实战案例:抓取所有的网络资源 33

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

第 2篇网络库

第 3章网络库 urllib 42

3.1 urllib简介 42

3.2 发送请求与获得响应 43

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

...

3.2.8 读取和设置 COOKIE 56

3.3 异常处理 60

...

3.4 解析链接 62

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

...

3.4.6 参数转换(parse_qs与 parse_qsl) 66

3.5 Robots协议 67

3.5.1 Robots协议简介 67

3.5.2 分析 Robots协议 68

第 4章网络库 urllib3 70

4.1 urllib3简介 70

4.2 urllib3模块 70

4.3 发送 HTTP GET请求 71

4.4 发送 HTTP POST请求 72

4.5 HTTP请求头 74

4.6 HTTP响应头 76

4.7 上传文件 76

4.8 超时 78

第 5章网络库 requests 80

5.1 基本用法 80

5.1.1 requests的 HelloWorld 81

...

5.1.6 响应数据 85

5.2 高级用法 87

5.2.1 上传文件 88

...

5.2.8 将请求打包 97

第 6章 Twisted网络框架 99

6.1 异步编程模型 99

6.2 Reactor(反应堆)模式 101

...

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

第 3篇解析库

第 7章正则表达式 108

7.1 使用正则表达式 108

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

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

7.1.3 匹配多个字符串 110

...

7.1.11 使用 split分隔字符串 122

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

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

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

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

第 8章 lxml与 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.11 使用 Chrome验证 XPath 153

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

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

第 9章 Beautiful Soup库 162

9.1 Beautiful Soup简介 162

9.2 Beautiful Soup基础 162

9.2.1 安装 Beautiful Soup 163

...

9.2.3 编写第一个 Beautiful Soup程序 164

9.3 节点选择器 165

9.3.1 选择节点 165

... ...

9.3.5 选择兄弟节点 172

9.4 方法选择器 174

...

9.5 CSS选择器 178

9.5.1 基本用法 179

...

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

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

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

第 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.4 获取节点信息 199

10.5 修改节点 203

...

10.5.3 删除节点 207

10.6 伪类选择器 208

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

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

第 4篇数据存储

第 11章文件存储 222

11.1 打开文件 222

11.2 操作文件的基本方法 224

...

11.2.2 读行和写行 226

11.3 使用 FileInput对象读取文件 227

11.4 处理 XML格式的数据 228

...

11.5 处理 JSON格式232

...

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

...

第 12章数据库存储. 242

12.1 SQLite数据库 242

12.2 MySQL数据库 247

12.3 非关系型数据库 253

...

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

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

第 5篇爬虫高级应用

第 13章抓取异步数据 266

13.1 异步加载与 AJAX 266

13.2 基本原理 267

13.3 逆向工程 270

13.4 提取结果 274

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

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

第 14章可见即可爬:Selenium 285

14.1 安装 Selenium 286

14.2 安装 WebDriver 286

...

14.2.3 安装其他浏览器的 WebDriver 289

14.3 Selenium的基本使用方法 289

14.4 查找节点 293

14.4.1 查找单个节点 293

...

...

14.10 改变节点的属性值 304

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

第 15章基于 Splash的爬虫 309

15.1 Splash基础 309

...

15.2 Splash Lua脚本 312

...

15.3 使用 CSS选择器 331

...

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

15.5 Splash HTTP API 334

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

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

16.1 使用 Charles 341

...

16.2 使用 mitmproxy 348

...

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

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

17.1 安装 Appium 368

...

17.2 Appium的基本使用方法 372

...

17.3 使用 Python控制手机 App 379

17.4 AppiumPythonClient API 380

...

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

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

18.1 线程与进程 389

...

18.1.2 线程 390

18.2 Python与线程 390

18.2.1 使用单线程执行程序 390

...

18.2.4 线程和锁 394

18.3 高级线程模块(threading) 395

...

18.3.3 从 Thread类继承 398

18.4 线程同步 399

...

18.4.2 信号量 402

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

18.6 多进程 407

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

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

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

19.1 Scrapy基础知识 413

...

19.1.3 Scrapy Shell抓取 Web资源 415

19.2 用 Scrapy编写网络爬虫 417

...

19.3 Scrapy的高级应用 431

...

19.3.8 通用爬虫 465

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

20.1 项目简介 475

20.2 主界面设计和实现 477

...

20.6 情感分析 484

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

20.8 可视化评论数据 486



推荐阅读
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
author-avatar
阿凡达0205
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有