前面的 《Python 的网络请求 Requests 模块使用》 我们已经对爬虫的基本过程有了了解,而且整个过程比较顺畅,容易理解,但是很多情况下我们的爬取工作并不是如此轻松的,我们可能会面临一些特殊情况,例如今天要说的速度问题,如果有大量的页面需要爬取,我们还使用单一线程就很慢了。
多线程爬虫
我们先不考虑特别大型的爬取,本文所有的思路都是基于满足个人需求的中型爬取需要。我们可以使用多线程来并行爬取,这样就可以成倍的提高爬取速度。
我们先来感受一下如何使用多线程:
|
|
前面的 《Python 的网络请求 Requests 模块使用》 我们已经对爬虫的基本过程有了了解,而且整个过程比较顺畅,容易理解,但是很多情况下我们的爬取工作并不是如此轻松的,我们可能会面临一些特殊情况,例如今天要说的速度问题,如果有大量的页面需要爬取,我们还使用单一线程就很慢了。
我们先不考虑特别大型的爬取,本文所有的思路都是基于满足个人需求的中型爬取需要。我们可以使用多线程来并行爬取,这样就可以成倍的提高爬取速度。
我们先来感受一下如何使用多线程:
|
|
Python 是著名的 “龟叔” Guido van Rossum 在 1989 年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
Python 的火热度怕是大家已经早已感受到了,很多程序员将 Python 作为了他的第二语言,如果你至今还未接触任何和 Python 相关的知识,那么今天我带给你的这篇文章可以让你快速了解 Python 语法,上手做东西了。
编译型语言:在程序执行前,会通过编译器将程序(代码)转换为机器语言(计算机可以看懂的语音),比如C语音。
解释型语言:没有编译过程,在程序执行的时候通过解释器对程序逐行解释然后直接运行。
比较:因为编译型语音在执行前已经做了编译(翻译给计算机),所以执行比较快(执行过程中不需要翻译)。
事实上,解释性语言还有一个缺点就是不能实现加密,如果要发布你的 Python 程序,实际上就是发布源代码,这一点跟 C/Java 等语言不同。当然了我们也不需要在意这些,如果你要写一个程序卖给别人可能会造成影响,大多数商业模式是售卖服务,所以不存在源码公开问题。
面向过程:一般就是先分析解决问题需要的步骤,然后用函数把这些步骤一步步实现,然后依次调用(比较接近计算机的思考方式)。
面向对象:把问题中的各个事物分解(抽象)成各个对象,通过对象之间交互来实现(和我们人类的思考方式更接近)。
Python 有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
本书籍初衷是为了整理我平时所写的一些 python 脚本,其实本人不是什么 python 专家,大多数情况都是边搜边实现,既然这里计划整理出这一部分知识,索性后面就做一个全面的 python 知识点梳理归纳和常用的 python 工具实现。本人认为无论你现在研究的或者擅长的是何种计算机语言, python 对你来说都很有用很有帮助,它可以帮你自动化的完成一些繁琐的事情。
作者在写作和整理过程中花费了大量时间和精力,另外服务器费用也是一笔不小的开支,如果你觉得我的文章和书籍对你有所帮助,可以请我喝杯咖啡或者农夫山泉:
如果在阅读过程中有任何疑问,可以去作者博客对应页面留言, 你也可以从我的体系树中找到对应文章。
最近因GitLab的国内访问速度问题将本站静态化到了七牛云存储,但是带来的问题也是很明显的。之前在GitLab使用Page来发布工程只需要提交代码即可,会自动静态化并部署项目,于是乎我就想让静态化并同步到七牛对象存储自动化一些,这也是这篇文章的初衷。
其实在用Python做自动同步之前,我使用的官方提供的一个Window上面的同步工具QSunSync,但是使用起来也不是很方便,最主要的原因是不太符合我整站同步的需求,而且速度极慢。
官网为我们提供了基础的对象存储操作SDK, 点击查看
安装Python SDK
|
|
整个同步过程如下:
最近在博客中做了一个相册功能,但是问题是我的图片都很大,用图片压缩工具压缩了一遍感觉不是很方便,于是就搜了一下python相关工具,后来发现知乎上的一篇文章《如何用Python智能批量压缩图片》,这里感谢作者提供了思路,短短几行代码实现了图片压缩需求。
最后添加了图片水印功能,可以方便配置图片路径来实现压缩和水印添加,本来打算使用Tkinter来实现一个图片界面方便操作,后来想想还是把精力放在核心逻辑上面吧,其实使用图形界面不见的就很方便,这样修改配置其实更方便些,如果你想实现成图形界面可参考我的另一篇博文《Python两个案例练习》。
在python中,一个.py文件就可以理解为一个模块,模块之间可以互相引用。
模块分为三种:自己写的、内置的、第三方的。
内置模块一般存放在安装目录的lib
目录下,第三方库一般存放在安装目录的lib\site-packages
目录下。第三方库使用前需要提前安装,例如Python操作图像的模块PIL需要提前安装。
这几天发生了一些意外,我的固态硬盘奇迹般的坏了,上周四倒腾了一天最终还是丢失了很多文件和我之前写的很多工具脚步,后来又忍痛买了一个新的固态盘。这件事让我对文件备份有了新的认识,也是通过这件事我琢磨准备做一个博客自动备份、编辑和发布的工具。
这个是我做的一个雏形,基本上已经能满足我大部分需求了,但是还不足以让大家使用,我慢慢抽时间修改和迭代吧,中间还有一些技术问题现在还未解决。
本文参考自莫烦python视频:https://morvanzhou.github.io/tutorials/python-basic/tkinter/
|
|
或者直接这样导入
|
|
注意我的python版本是:2.7.15
|
|
|
|