
Python
文章平均质量分 65
城市里的元
经营博客,需用心。
展开
-
[爬虫架构] 如何设计一个分布式爬虫架构
前言: 在大型爬虫项目中,使用分布式架构是提高爬取效率的唯一途径。设计一个合理的分布式架构对项目、对个人都有很大的好处,接下来说说分布式架构应该具有的特性:分布式。这是最基本也是最核心的特性,分布式将允许我们通过横向扩展主机资源来提高爬取效率。易扩展、易部署。当我们想要增加要爬取的网站时,只需要专注于爬取规则、解析规则、入库规则部分的代码编写就ok,其他的如日志、异常处理则让底层架构实现。各...原创 2018-05-01 23:05:34 · 9513 阅读 · 17 评论 -
[爬虫小记] 优秀的requests模块
前言 除了当初学习爬虫的时候用过urllib、urllib2,后来再没用过了。都是使用的requests,本文将记录一直以来个人使用 requests的经验总结。正文 import requests r = requests.get('http://www.baidu.com') print(r.status_code) #200 获取状态码 ...原创 2018-05-18 11:57:44 · 368 阅读 · 0 评论 -
[Python小记] 通俗的理解闭包 闭包能帮我们做什么?
热身首先给出闭包函数的必要条件:闭包函数必须返回一个函数对象 闭包函数返回的那个函数必须引用外部变量(一般不能是全局变量),而返回的那个函数内部不一定要return几个典型的闭包例子:# ENV>>> Python 3.6 # NO.1 def line_conf(a, b): def line(x): r......原创 2018-05-27 00:20:41 · 28301 阅读 · 46 评论 -
[Python小记] 装饰器怎么用 ?
装饰器的含义和作用: 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。 它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的...原创 2018-05-27 17:10:44 · 985 阅读 · 4 评论 -
[巩固基础]总结Python基础知识的14张思维导图
闲聊 有时候总感觉自己的代码太low,却又没有什么办法去改善,就很气! 不知道作为看官的你是否由此感受呢,不过最近我找到办法解决这个问题了,那就是巩固基础--系统的学习python初级、高级语法,一段时间后,我明显感觉到自己的代码变得更简洁、优美,coding的心情也变的舒畅~ 就此分享一波仓库的资料:包含Python基础知识的14张思维导图-PDF,希望有所帮助。...原创 2018-06-06 14:42:26 · 1316 阅读 · 0 评论 -
[开源库学习] Numpy日记 Section.1
前言 最近入门Data anaysis,将numpy学习日记分享出来,也当做个记录。 【Numpy官网学习地址】:Click Here 备注: 我尽可能的将官网快速教程中的case都贴出来了,但越往下发现这个库是真的庞大,教程也是由浅及深,后面会涉及到向量、线性代数等高数概念,这个本文中不会提到,需要的话自行前往官网查看。这个日记分为两个Section,加起来可能占到官网快速...原创 2018-06-13 17:48:00 · 407 阅读 · 0 评论 -
[开源库学习] Numpy日记 Section.2
前言 最近入门Data anaysis,将numpy学习日记分享出来,也当做个记录。 【Numpy官网学习地址】:Click Here 备注: 我尽可能的将官网快速教程中的case都贴出来了,但越往下发现这个库是真的庞大,教程也是由浅及深,后面会涉及到向量、线性代数等高数概念,这个本文中不会提到,需要的话自行前往官网查看。这个日记分为两个Section,加起来可能占到官网快速...原创 2018-06-13 17:54:46 · 383 阅读 · 0 评论 -
[Scrapy使用技巧] 如何在scrapy中捕获并处理各种异常
前言 使用scrapy进行大型爬取任务的时候(爬取耗时以天为单位),无论主机网速多好,爬完之后总会发现scrapy日志中“item_scraped_count”不等于预先的种子数量,总有一部分种子爬取失败,失败的类型可能有如下图两种(下图为scrapy爬取结束完成时的日志):scrapy中常见的异常包括但不限于:download error(蓝色区域), http code 40...原创 2018-06-15 16:29:50 · 36296 阅读 · 35 评论 -
[Python3] RSA的加解密和签名/验签实现 -- 使用Crypto
前言关于非对称加密算法我就不过多介绍了,本文着重于python3对RSA算法的实现。正文from Crypto.PublicKey import RSAimport Crypto.Signature.PKCS1_v1_5 as sign_PKCS1_v1_5 #用于签名/验签from Crypto.Cipher import PKCS1_v1_5 #用于加密from Crypt...原创 2018-10-12 15:30:17 · 6973 阅读 · 1 评论 -
[Python] 3.7中的dataclasses
简介:这个dataclasses是当做装饰器来用,作用是在我们定义数据class对象时减少我们的代码量。文章主要是用IDE写的,还请见谅。 正文:from dataclasses import dataclass#带上这个装饰器帽子,相当于它的init,repr,eq等双下划线方法都自动帮我们创建@dataclass(init=True, repr=True, eq=...原创 2018-12-26 16:52:04 · 4608 阅读 · 0 评论 -
[面试] 1. 关于Python的基础知识
本文章收录于:后端工程师面试题目总结(提供参考答案)目录1. 可变与不可变类型2. 谈谈浅拷贝与深拷贝3. __new__和__init__的区别4. 谈谈设计模式5. 列表推导式和生成器的优劣6. 什么是装饰器,想在函数之后进行装饰,怎么做?7. 使用装饰器的单例模式和其他方法(如new方法,或者单文件实现的单例)相比,有何区别?8. 谈谈线程与进程的区别...原创 2019-05-24 10:42:43 · 978 阅读 · 1 评论 -
[Python3] 如何装饰类中的类方法或静态方法
Talk is cheapCode is here:#普通装饰器(装饰函数和类)def deco111(func_or_cls): def wrap(*args, **kwargs): print(type(func_or_cls)) return func_or_cls(*args, **kwargs) return...原创 2019-03-15 11:55:08 · 897 阅读 · 0 评论 -
[Python] 六种进程间通信方式的Python3.6实现
正文: 进程间通信方式有六种,如下msg_queue (消息队列) pipeline for single duplex (单工管道) pipeline for half duplex (半双工管道) name pipeline (命名管道) share memory (共享内存) semaphore (信号量) 这六种方式各有特点,其中有些使用场景也不同,比...原创 2019-05-06 17:36:18 · 11255 阅读 · 8 评论 -
[爬虫架构] 如何在分布式爬虫架构中动态维护一个代理IP池(付费代理)
前言: 当分布式爬虫使用代理IP技术时,通过直接在爬虫程序中添加平台api接口的方式已经不能满足我们了,因为分布式的爬虫架构每秒的代理IP-URL的请求数会远远大于平台限制的请求频率,当然,对于没有限制的套餐此处不考虑,但为了爬虫能够稳定的获取代理IP,我们仍需要维护一个本地的代理IP池。准备工作: 需要的工具:搭建好的一台Redis服务器思路: ...原创 2018-04-17 13:21:12 · 1975 阅读 · 0 评论 -
[Python模块]Windows环境安装PyV8并执行js语句
安装这个玩意儿真挺坑的,pip直接安装失败,windows的py库压根搜不到。。搜索良多解决办法终于找到了,在这里贴出来,主要是把这个库下载下来再安装,但它的下载地址HERE位于外面的世界(你懂得),可能在下载这里会让人很烦躁,我把它的windows版本和linux版本都下载并上传到我的百度网盘了,免费供大家下载。更新:根据网友建议提供py3的下载地址,之前只有py2的。--py2版...原创 2018-04-15 00:46:47 · 12024 阅读 · 18 评论 -
【python】 os.path模块介绍
os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。 os.path.dirname(path) #返回文件路径 os.path.exists(path) #路径存在则返回True,路径损坏返回False o转载 2017-12-22 16:38:05 · 287 阅读 · 0 评论 -
【Python模拟登录】py2模拟登陆优快云(人工识别验证码)
思路描述:浏览器打开优快云登陆页,使用浏览器的右键检查功能(F12)来监控HTTP请求,先通过错误的账号密码登陆优快云,然后在“Network”中查看第一个请求的内容,如果是请求方式post那一般就对了,如果不是那就往下一个一个找,如图一: 图一把requests URL复制出来作为登录的url(分号后面的不要),右边的上下滑动杆拉到最下面查看需要提交哪些数据,如图二:原创 2017-12-17 13:19:49 · 735 阅读 · 0 评论 -
【Beautifulsoup】如何在网页中通过中文text获取标签
说明:通常我们所看到的网页几乎都是utf-8编码,这点在网页源码中搜索“charset”可以看到。也可以点击此处的方法查看,我们在使用beautifulsoup的时候,难免会有使用text属性来查找标签的时候,英文还好,查找中文的时候(bs.find(text=('钟表')),返回的结果几乎都是None,下面说说这个问题。当运行以下代码时:html = urllib2.urlopen(原创 2017-12-10 14:32:51 · 8290 阅读 · 0 评论 -
【爬虫学习笔记】BeautifulSoup用法分析(二)
本文章介绍BeautifulSoup的主要函数用法,对于BeautifulSoup的概念介绍请点击下方分析(一)查阅或自行查询,此处不再赘述。为了方便文章的编写,下文将用BS代表BeautifulSoup。笔记分为以下两篇文章:BeatifulSoup用法分析(一)BeatifulSoup用法分析(二)-本文上一部分主要介绍BS最基本,也是实战中很少用到的函数,这部原创 2017-11-17 12:14:06 · 770 阅读 · 0 评论 -
【爬虫学习笔记】BeautifulSoup用法分析(一)
掌握了一些python的基础语法后,便可以考虑想要发展的方向了,爬虫是一个很不错的方向在学习单线程爬虫的时候,势必会遇到BeatifulSoup,若不能熟练掌握它的用法,就很难往下面走了,下面开始介绍BeatifulSoup笔记分为以下两篇文章:BeatifulSoup用法分析(一)-本文BeatifulSoup用法分析(二)BeatifulSo原创 2017-11-16 09:21:04 · 1259 阅读 · 0 评论 -
Python学习网站集合[持续更新...]
在成长的过程中,始终不忘记录这一切。学习Python有很多方向,WEB开发、爬虫开发、大数据、自动化运维、人工智能。。个人准备学习的是爬虫和web,其他的估计短时间接触不到就不记录了。OK,正文开始(链接可复制可点击):Python基础入门(包含2.x&3.x):https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6原创 2017-10-29 11:38:56 · 336 阅读 · 2 评论 -
python调用Shell脚本:os.system(cmd)或os.popen(cmd)的区别
两者的区别是:os.system(cmd)的返回值只会有0(成功),1,2 os.popen(cmd)会把执行的cmd的输出作为值返回。 python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。现假定有一个shell脚本test.sh:转载 2017-10-22 17:12:13 · 2910 阅读 · 0 评论 -
【Python笔记】输出中文的方法(字符编码)
说实话,要搞懂python中字符编码的所有问题,一定得在实战中积累经验才行!在此文章中,我用实例来分析并解决我们经常会遇到的一些问题,我的IDE环境为pycharm。示例1:如何输出编辑器中手动输入的中文?#coding=gbka='宙斯'aa=a.decode('gbk')print aa输出结果为中文“宙斯”(在后面的示例中不再特别说明)示例2:如何输出文原创 2017-10-25 11:40:30 · 2801 阅读 · 0 评论 -
【Python笔记】no.3 练习-实现linux下的差异备份
前序首先,说明一下我的程序大概能做什么事:标题是实现linux下的差异备份,但我这里只是实现基本的功能,没有针对输出格式错误的时候进行处理!差异备份是指在一次全备份后到进行差异备份的这段时间内,对那些增加或者修改文件的备份,但是我这里只能备份增加的和对文件名修改过的文件进行备份,不能备份只修改内容的文件,后续会解决。代码:#coding=utf-8import mbackup原创 2017-09-30 10:53:42 · 746 阅读 · 0 评论 -
【Python笔记】关于linux和windows下的模块
模块•模块就是一个含有python语句的文件,其实就是官方预先写好的一个功能,然后取其名为‘模块’,当需要用到此功能时就是导入它•模块名就是文件名(不要扩展名.py,有例外)在写程序的时候常常需要导入模块,有许多模块在默认安装python环境的库里边就已经有了,比如我导入一个模块:>>> import sys>>> help(sys)Help on built-in mod原创 2017-09-18 11:37:04 · 1051 阅读 · 0 评论 -
【Python模拟登录】py2模拟登录GitHub
·思路描述先通过浏览器使用账号正常登陆网站,分析提交的表单可以用火狐或者其他抓包工具,这里推荐火狐,它可以抓取到重定向前的请求,而重定向前的http请求就包含了模拟登录需要的各项参数(如账号、密码、其他字符)。如下图,输入账号密码,右键打开“查看元素”,点击“sign in”登录登陆之后,观察控制台的请求变化情况,登录成功后如下图,如图,火狐的优势就显现出来了,第一个POST请求就是实际登录的ht...原创 2018-01-17 17:33:23 · 470 阅读 · 0 评论