
python
master_ning
master_ning,不定期分享最有用,最实在的原创内容
展开
-
浅谈python使用多态跟不用多态的区别
多态, 不同的 子类对象调用 相同的 父类方法,产生 不同的 执行结果,可以增加代码的外部 调用灵活度,多态以 继承 和 重写 父类方法 为前提多态是调用方法的技巧,不会影响到类的内部设计下面就用一段简单的代码来看看多态的优点首先,我们看一下没有多态的代码:class ArmyDog(object): def bite_enemy(self): print('追击敌人')...原创 2018-03-08 23:18:10 · 10006 阅读 · 3 评论 -
数据结构和非数据结构详解
在提到数据结构和非数据结构时,好多人都有这样的意识,概念可能说不上来,接下来就来说说结构化数据和非结构化数据的概念以及不同:结构化数据、非结构化数据是对存储形式的一种数据类型分析,有助于企业细分行业案例,帮助存储合作伙伴更好地解决应用实施方案。结构化数据结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相...原创 2018-07-14 09:39:12 · 2220 阅读 · 0 评论 -
爬取51job职位信息
今天在爬职位信息的时候,先用的requests模块,后来发现,获取的数据全部是乱码。果断换成selenium+Chrome,成功获取数据,保存MongoDB在前期校验获取成果时,建议用selenium+Chrome,后期测试通过,换成无界面的PhantomJS代码如下:import timefrom selenium import webdriverfrom selenium.webdriver....原创 2018-07-07 20:00:54 · 1508 阅读 · 0 评论 -
pymongo.errors.DuplicateKeyError: E11000 duplicate key error collection: anjuke.ershoufang index
这个bug忙了我一下午加一个晚上,终于把它ko掉了先附上一段爬取安居客二手房信息的代码import reimport timeimport pymongoimport requestsfrom bson import ObjectIdfrom lxml import etreefrom pprint import pprintheaders = { "User-Agent": "Mozill...原创 2018-07-06 23:13:58 · 4980 阅读 · 1 评论 -
用Python实现微信撤回消息还原
在使用微信过程中,有时候我们会撤回一些发错或者不该发的一些信息,今天我就用一段代码实现将撤回的消息还原。。。从此再也不怕别人撤回消息,自己不能看的尴尬了import osimport reimport shutilimport timeimport itchatfrom itchat.content import *# 说明:可以撤回的有文本文字、语音、视频、图片、位置、名片、分享、附件# {ms...原创 2018-07-03 23:18:27 · 5409 阅读 · 2 评论 -
Windows 和 Linux系统查看进程号
在Windows系统下想查看进程号,要如何操作呢首先,打开用cmd打开终端命令行,输入命令:tasklist,就会把当前所有进程及其编号都会显示出来:要想杀进程,可以通过命令:taskkill pid ,杀死进程Linux系统如何查看系统进程号呢: linux 查进程、杀进程、起进程查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序。...原创 2018-06-23 20:05:26 · 2890 阅读 · 0 评论 -
python 中的垃圾回收之标记清除
Python引入了其他的垃圾收集机制来弥补引用计数的缺陷:"标记-清除","分代回收"两种收集技术.标记-清除"标记-清除"是为了解决循环引用的问题.可以包含其他对象引用的容器对象(比如:list,set,dict,class,instance)都可能产生循环引用.我们必须承认一个事实,如果两个对象的引用计数都为1,但是仅仅存在他们之间的循环引用,那么这两个对象都是需要被回收的,也就是说,它们的引...原创 2018-06-23 16:35:08 · 2936 阅读 · 1 评论 -
tesseract基本用法之识别图片文字
Tesseract 是一个 OCR 库,目前由 Google 赞助(Google 也是一家以 OCR 和机器学习技术闻名于世的公司)。Tesseract 是目前公认最优秀、最精确的开源 OCR 系统,除了极高的精确度,Tesseract 也具有很高的灵活性。它可以通过训练识别出任何字体,也可以识别出任何 Unicode 字符。安装TesseractWindows 系统下载可执行安装文件:https...原创 2018-06-14 22:18:17 · 3483 阅读 · 0 评论 -
关于安装tesserocr报错,Failed building wheel for tesserocr
用pip3 install tesserocr pillow命令安装,tesserocr,安装过程会报错,Failed building wheel for tesserocr我成功解决的办法,是先安装必需的包,sudo apt-get install tesseract-ocr libtesseract-dev libleptonica-dev再用命令,sudo pip3 install...原创 2018-08-25 18:49:26 · 2734 阅读 · 0 评论 -
from PIL import Image,报错,解决办法
在安装pillow的时候,安装成功,但是在导包的时候出错,各种百度,各种方法都试过了,就是不行,依然报错。后来追踪PIL文件路径,竟然是我创建的PIL.py,文件,哦哦哦,原来系统自动导的是我本地创建的文件,把PIL.py文件名一改,完美解决...原创 2018-09-11 12:23:47 · 15373 阅读 · 3 评论 -
1241, 'Operand should contain 1 column(s)'
最近在用mysql作为数据库存储,可会遇到,1241, 'Operand should contain 1 column(s)',这样的报错。这样一般就是字段个数不匹配。我检查了几遍字段,都是对应的,没有缺少或者多余。经过一系列的检查,尝试,发现,['机车(1201)', '陆、空、水或铁路用机动运载工具(1201)'],这样的列表不能直接存储,需要转换一下,转换成,[机车(1201), ...原创 2019-01-28 18:09:22 · 3493 阅读 · 1 评论 -
获取frame 标签里#documents里面的内容
最近几天在爬一个网站,里面有frame标签。今天有想获取frame标签下面#documents里面的内容,查了一晚上的资料,幸好找到,明天可以交差了。。。一个有frame标签的网站,http://www.lmtw.com/search.php?show=title%2Ckeyboard%2Cwriter&searchget=1&keyboard=%E7%94%B5%E8%A...原创 2018-12-25 20:36:02 · 3155 阅读 · 1 评论 -
存在frame标签,获取docments里面内容的正确解法
这两天在爬取一个网站,打开开发者工具一看,之前没有见过frame标签,而且关键的数据都在#docments里面,这就很头疼。。。查了资料,问了大佬,终于找到了解决方案,大喜我的解决方案先找到有frame 的标签,一点要是最外层的frame,frameset,这个标签不用理。先定位到最外层 frame,例如用xpathfr=(driver.find_element_by_xpath(...原创 2018-12-21 19:27:28 · 827 阅读 · 0 评论 -
Ubuntu 18.04版本中安装Mysql后,Mysql每次访问需要加sudo的问题
在Ubuntu18.04上安装MySQL后,发现在普通用户shell下无法使用root用户名登录MySQL,mysql -uroot -pmysql,提示权限问题,命令必须改为,sudo mysql -uroot -pmysql,这样就比较麻烦,特别是用程序链接数据库,就没法链接成功。后来看了一下mysql的数据库发现MySQL的root用户的plugin被修改了,只有换成mysq...原创 2018-10-23 17:45:50 · 1789 阅读 · 1 评论 -
信用中国公司信用数据爬取
最近在爬取信用中国的时候,有个参数,encryStr,始终找不到,最后发现,只要拿到请求的网页,再从网页中取出来,encryStr,最后再拼到需要的地方就可以了这是,搜索页url,https://www.creditchina.gov.cn/xinyongxinxi/index.html?index=0&keyword=%E5%B0%8F%E7%B1%B3%E7%A7%91%E6%8A...原创 2018-09-30 17:57:47 · 5958 阅读 · 2 评论 -
Python2代码转换Python3代码工具介绍
最近在做一项目,api接口都是用python2 写的,用起来真是不方便,想一下有没有工具,python2直接转python3的工具。经过百度,还真有。。。拿过来就是自己的首先找到python2转python3 的工具代码的位置,由于 2to3.py 是一个脚本文件,所以我们需要到CMD窗口去执行一下,打开CMD窗口,然后cd进2to3.py所在的文件夹scripts之后就是找到...原创 2018-10-08 18:33:31 · 1135 阅读 · 0 评论 -
股东控股关系图谱简化版
最近在爬一些企业类的数据,在要取股东控股关系图谱时,问题来了标签不一致,还要挨个把数据取出来。才像个控股的样子,像这样的直接来个简化版的把这一部分的源码取出来,再用xpath,匹配取数据终于有点控股关系的样子了,其他的再慢慢完善 ...原创 2018-09-26 17:58:06 · 2393 阅读 · 0 评论 -
PyQuery的基本使用
PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严格实现。语法与 jQuery 几乎完全相同,所以不用再去费心去记一些奇怪的方法了。from pyquery import PyQuery as pqhtml = ''' <div...原创 2018-09-13 10:38:43 · 375 阅读 · 0 评论 -
Python中-Json模块dumps、loads、dump、load函数详细介绍
1、json.dumps() json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。[python] view plain copyimport json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} ...原创 2018-05-28 20:23:16 · 1121 阅读 · 0 评论 -
异步和非阻塞的区别
我们说Twisted是一个异步的网络框架,经常我们也听到一个词语叫做非阻塞,那么他们有什么区别呢?异步:调用在发出之后,这个调用就直接返回,不管有无结果;异步是过程。 非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程。同步和异步的区别:同步:一个服务的完成需要依赖其他服务时,只有等待被依赖的服务完成后,才算完成,这是一种可靠的服务序列。要...原创 2018-06-03 21:38:16 · 2750 阅读 · 1 评论 -
图片无缝滚动
今天给大家做一个简单的图片无缝滚动的教程,代码不多,关键逻辑要想明白,其他的都好做。做好的示例如下:这是一个动图,主要逻辑如下:1.刷新页面 自动向左移动2.点击左右箭头 改变移动方向3.鼠标移动上去 停止 移开继续移动逻辑看上去简单,逻辑出来了,代码也就能出来了<!DOCTYPE html><html lang="en"><head> <meta cha...原创 2018-03-27 23:48:27 · 613 阅读 · 0 评论 -
多线程在共享变量中出现的问题
假设两个线程t1和t2都要对全局变量g_num(默认是0)进行加1运算,t1和t2都各对g_num加10次,g_num的最终的结果应该为20。但是由于是多线程同时操作,有可能出现下面情况:1、在g_num=0时,t1取得g_num=0。此时系统把t1调度为”sleeping”状态,把t2转换为”running”状态,t2也获得g_num=02、然后t2对得到的值进行加1并赋给g_num,使得g_n...原创 2018-04-02 23:48:59 · 2089 阅读 · 0 评论 -
请求方式:post和get在使用中的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。下面就仔细分析一下两者的区别: 1. get是从服务器上获取数据,post是向...原创 2018-04-10 00:02:28 · 327 阅读 · 0 评论 -
python 中常见的快捷方式后续
1. ctrl+d:复制粘贴一行 光标放在要复制的一行2. ctrl+y:删除一行3.alt+shift+上下键:选中代码移动4. ctrl+shift+上下键:可以移动当前方法体,如果移动一行代码只能在代码体内移动5. ctrl+shift+U:代码大小写6.ctrl+鼠标:进入代码7. ctrl+B:进入代码8.ctrl+shift+i:快捷查看方法实现的内容9.ctrl+alt+H:查看当前...原创 2018-03-13 23:11:52 · 460 阅读 · 0 评论 -
一个简单的装饰器算出函数运行时间
程序猿在做优化时经常会计算一个函数的用时,从而针对某几个函数进行优化,下面我就用一个简单的装饰器来实现计算函数运行时间:import timedef set_fun(func): def call_fun(*args, **kwargs): start_time = time.time() func(*args, **kwargs) end_time...原创 2018-03-19 21:28:18 · 5041 阅读 · 0 评论 -
python爬取微博用户个人简介等信息
import jsonfrom scrapy import Spider, Requestfrom weibouser.items import WeibouserItemclass WeiboSpider(Spider): name = 'weibo' allowed_domains = ['weibo.cn'] def start_requests(self): ...翻译 2018-03-19 20:59:57 · 2232 阅读 · 0 评论 -
python 中常见的快捷方式
相信大家在写代码的时候经常会用到快捷键,这不仅使编写代码的效率提高不少,还能装 X...下面整理了部分常见快捷键,后期会接着更新。废话不多说:1.ctrl+shift+A:万能命令行 可以新建一个python文件2. shift两次:查看资源文件3.ctrl+/:单行注释 也可以选中多行,一起注释,这就省去了测试代码删删添添的尴尬4.ctrl+alt+enter:向上插入5.shift+ente...原创 2018-03-10 22:36:06 · 6473 阅读 · 2 评论 -
使用上下文管理器‘with’打开数据库
首先,我们连接建立好的数据库:#导包from pymysql import *class DB(object): def __init__(self,databasename,password): # 1. 连接数据 # 创建Connection连接 self.conn = connect(host='localhost', port=3306, databas...原创 2018-03-09 23:00:18 · 466 阅读 · 0 评论 -
设计模式之单例模式——初步理解
设计模式中有一种应用比较普遍的一种,单例模式。今天就说说单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象创建型模式。1、保证只有1个对象2、只执行1次__init__方法用一段简单的代码来解释一下:class Person(object): instance = None # 类属性 is_first_run = True...原创 2018-03-28 21:27:59 · 193 阅读 · 0 评论 -
ajax在前端开发中的作用
ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息。ajax技术的原理是实例化xmlhttp对象,使用此对象与后台通信。ajax通信的过程不会影响后续javascript的执行,从而实现异步。 说的直白一点:ajax是使用js代码动态从服务器拿数据先看一段简单的代码,<!DOCTYPE html><html lang='en'...原创 2018-04-04 23:05:47 · 3227 阅读 · 0 评论 -
Python 开发者 2017 应该关注的 7 个类库
Django 依然是 Python 开发者值得信赖的库。然而,在 2016 年几个还不太知名的库引起了 Python 开发者的关注。在这篇博文中,我向大家揭示 7 个 Python 类库,其中不包括像 Django,Flask 等已广为熟知的库,这些类库在 2017 年可能值得 Python 开发者参考。1、Arrow移动应用程序无处不在,而且全球人类都参与其中 - 无论是游戏,社交媒体,健康监控...翻译 2018-06-02 23:52:39 · 234 阅读 · 0 评论 -
Django自定义模板过滤器
django 在views中有数据需要通过字典(dict)的方式传递给template,该字典中又包含了字典,而且字典中的键值还是一个对象,在template中处理传递过来的数据的时候,字典不能通过键值的方式取出原有数据,对象不能通过(.)的方式直接取出数据,通过大量地查阅资料,最终通过过滤器(filter)的方式解决!在应用中创建templatetags目录,当前示例为”book...原创 2018-05-15 17:17:28 · 740 阅读 · 0 评论 -
阿里云配置python(flask, django)虚拟运行环境
查看源 cat /etc/apt/sources.list 和ls /etc/apt/sources.list.d 中列出的源的索引同步: sudo apt-get update升级: sudo apt-get upgrade安装python3.61234567wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz xz -...翻译 2018-05-14 22:30:58 · 503 阅读 · 0 评论 -
数据库在有外键约束的情况下,怎么删除数据库中的数据
相信大家可能会遇到这样一个问题,数据库设置了外键,可还想删除数据库中的某些数据,怎么操作?现在就教大家一个轻松的办法,不用删除外键就可以删除数据库中的一些数据,关键id还能从1开始,不用默认递增首先,在数据库中查看外键是否有效(没有设置之前都是有效),命令:select@@foreign_key_checks;,其中,值为1,外键有效,此时,要想删除数据库中的数据是删不掉的将外键的值设置为0,此时...原创 2018-05-20 21:44:52 · 27519 阅读 · 2 评论 -
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 21: ordinal not in range(128)
经过证实这个是python2.7的bug一枚python的编码问题一直是头痛,比如matplotlib画图只接受utf-8编码,如果没有设置就会在画图时报错。 有时间整整这个python编码;如标题所示,解决方案:加入import sysreload(sys)sys.setdefaultencoding("utf-8")...原创 2018-05-13 17:10:12 · 2895 阅读 · 0 评论 -
Python中with语句的理解
Num01–>with语句的来源在Python2.5中with关键字被加入。它是用来替代try…except…finally…的模式。Num02–>with语句的作用with语句使用于对资源进行访问的场合。确保使用过程中不管是否发生异常,都会执行必要的“清理”操作,并释放资源。比如文件使用后自动关闭,线程中锁的自动获取和释放。Num03–>with语句的语法格式with EXPR...转载 2018-05-06 23:33:52 · 366 阅读 · 0 评论 -
MySQL 事务详解
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。事务用来管理 inse...原创 2018-04-27 21:53:31 · 238 阅读 · 0 评论 -
学会这12个框架,你的薪资和level能更上一层楼
在当今世界,对各种框架的了解是非常重要的。它们使你可以快速开发原型和实际项目。在本文中分享了12个与Java开发、移动app开发、Web开发和大数据相关的有用框架。希望可以能够提升技术方面的知识。1)Angular这是另一个JavaScript框架,也在我的2018年学习清单中。它提供了一个完全的客户端解决方案。你可以使用AngularJS在客户端创建动态网页。它提供了声明性模板,依赖注入,端到端...原创 2018-05-06 00:41:38 · 675 阅读 · 0 评论 -
HTTP 202状态码的处理方式
最近在爬某网站,谷歌浏览器打开是ok的,可以显示网页内容。程序有时候也可以抓到相应的内容,可有时候就不行。我抓取的是json格式的数据,在解析的时候有时就成功,有时报错。经过一番盘查,发现解析报错的时候,response返回状态码是202,咦。。。这个从来没见过于是,又是一番谷歌,找到相关解释:1.202 Accepted 表示服务器端已经收到请求消息,但是尚未进行处理。但是对于请求的...原创 2019-07-17 16:21:28 · 13420 阅读 · 0 评论