摘要: (一)同步 通过上一篇的介绍,我们发现了多线程开发可能遇到的问题,问题产⽣的原因就是没有控制多个线程对同⼀资源的访问,对数据造成破坏,使得线程运⾏的结果不可预期,这种现象称为“线程不安全”。 如何解决这个问题,就要引入同步,那什么是同步呢? 同步就是协同步调,按预定的先后次序进⾏运⾏。如:你说完,我 阅读全文
posted @ 2018-10-09 17:23 A-handsome-cxy 阅读(154) 评论(0) 推荐(0) 编辑
摘要: (一)简介 之前我们介绍了进程,他是资源分配的基本单位,比如我们的一段代码,写完保存后是一个程序,当他运行起来,占用一定内存空间后就是一个进程,此时程序开始一行一行的执行,在这个进程里面会有线程的存在,他们各自完成自己的任务,但可以在整个进程的空间内实现资源共享,我们用如下一个实例来演示: 说明: 阅读全文
posted @ 2018-10-08 17:20 A-handsome-cxy 阅读(233) 评论(0) 推荐(0) 编辑
摘要: (一)简介 BeautifulSoup是一个灵活方便的网页解析库,处理高效,支持多种解析器,利用它可以不用编写正则表达式即可方便的实现网页信息的提取。 这里我们介绍一下一些常用的解析库: (二)用法详解 1.基本使用 从输出中可以看到,自动为我们补全了不完整的标签信息。 1 <html> 2 <he 阅读全文
posted @ 2018-10-05 09:52 A-handsome-cxy 阅读(111) 评论(0) 推荐(0) 编辑
摘要: (一)简介 在现实中,可能有如下需求,多个任务间需要相互配合与联系去实现任务间的数据交流,但是我们知道,进程与进程之间是没有任何联系的,那如何实现呢?这里介绍一种实现进程间的通信的方式 队列Queue。 (二)语法格式 说明: 初始化Queue对象时,如果括号内没有指定最大可接收的消息数量,或数量为 阅读全文
posted @ 2018-10-04 11:42 A-handsome-cxy 阅读(106) 评论(0) 推荐(0) 编辑
摘要: (一)简介 为什么要有进程池?进程池的概念。 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗时间,销毁进程也需要消耗时间。第二即便开启了成千上万的进程,操作系统也不能让他 阅读全文
posted @ 2018-10-04 10:37 A-handsome-cxy 阅读(117) 评论(0) 推荐(0) 编辑
摘要: (一)简介 通过之前的学习,我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发处理,他们之间的运行没有顺序,一旦开启也不受我们控制。尽管并发编程让我们能更加充分的利用IO资源,但是也给我们带来了新的问题:当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题。例如下列情形- 阅读全文
posted @ 2018-10-02 15:44 A-handsome-cxy 阅读(211) 评论(0) 推荐(0) 编辑
摘要: (一)目标站点的分析 首先打开我们的目标网站,发现每一页有十个电影,最下面有分页标志,而分页只改变的是标签后缀,如下: 而后可以在网页按f12打开源代码管理,查看网页每处信息对应的源代码形式,如下图: (二)流程框架 经过简单分析后,我们可以整理一下总的流程分为四步: (三)实战编码 1.我们首先完 阅读全文
posted @ 2018-10-02 12:37 A-handsome-cxy 阅读(256) 评论(0) 推荐(0) 编辑
摘要: (一)简介 requests 是python中比较方便的HTTP库,比urllib方便很多,我们以一个简单的实例来看看: 相比urllib是不是简单很多,其各种属性跟urllib也差不多,接下来我们具体看如何发送各种请求。 (二)基本GET请求 1.基本写法: 如果想带参数直接构造字典并传入到get 阅读全文
posted @ 2018-09-26 17:19 A-handsome-cxy 阅读(499) 评论(0) 推荐(0) 编辑
摘要: (一)简介 之前程序执行都是一条腿走路,现在通过系统编程,我们将学会用多条腿走路,也就是接下来我们将要学习的两种多任务方式 进程和线程。 所谓多任务,就是同一时刻打开了多个任务。 一般情况下是如何进行多任务的呢? 在过去的单核CPU执行多任务时,操作系统轮流让各个任务交替执行,任务1执行0.01s, 阅读全文
posted @ 2018-09-25 18:55 A-handsome-cxy 阅读(232) 评论(0) 推荐(0) 编辑
摘要: (一)简介 Urllib库是Python内置的HTTP请求库包括四个函数方法 urllib.request 请求模块 urllib.error 异常处理模块 urllib.parse url解析模块 urllib.robotparser robots.txt解析模块 接下里,我们以代码的形式看看如何 阅读全文
posted @ 2018-09-23 22:56 A-handsome-cxy 阅读(620) 评论(0) 推荐(0) 编辑