3 雀黑够呛哥

尚未进行身份认证

我要认证

【Unyielding_L】https://www.jianshu.com/u/178b96fa927c 【喜欢ctrl的cxk】https://me.csdn.net/weixin_42449444 【风向晚】http://maplefan.com/ 【皮皮传】http://www.xswblog.top

等级
TA的排名 7w+

对于爬虫的一些思考

最先应该思考的问题稳定性除重爬虫的稳定性由于项目并不会投入太多的时间,所以稳定性能是最终的。稳定性的可以从以下的维度进行考虑:数据量不多的时候采用单线程。异常处理。重试。详细的日志。个人觉得数据量少就是在40小时内遍历全部并且可以爬完的就是小数据量。异常处理主要就是放在请求网站时、入库。而重试主要是用traceback这个库,它的作用是捕捉到特定异常、设定重试间隔的时长、间隔时常的增长策略。如果真的想不到要在什么地方写重试就思考:在断网的情况下会出现什么情况,重试多次以后会

2020-08-23 14:14:38

sqlalchemy AttributeError: can‘t set attribute可能的错误原因

在model没有缺少字段的前提下做以下查询def foo(path): imgs = sess.query( Img.url, Img.map_url ) for img in imgs: img.path = path sess.commit()会出现sqlalchemy AttributeError: can't set attribute的情况,同理改成def foo(path):

2020-08-23 11:19:49

webargs,restful参数处理

普遍程序员给大家的印象都是穿衣打扮很out,但是他们对于新技术和数码产品的追求绝对是很in的。-----我说的前言:这次用的web框架是Tornado,webargs的中文例子还是挺少的,我起个头,接下来指定有很多抄袭的1 获取参数的基本操作在官网中有两种一种是使用装饰器一种是声明parse实例。既然有两种方式,那就要思考到底哪一种更加的优雅。在restful的风格的大前提,同一个路由路径可能有多种不同的请求方式,例如‘/api/books/’这个接口使用POST请求则对应添加一本新书的操作,.

2020-08-07 00:04:34

SQLAlchemy 出现TypeError: unhashable type: ‘dict‘的一种可能性

一、首先是检查对应的model数据类型是否对上了。可能你并不知道可以通过数据库表反向生成model,也有可能是在网上搜索得到结果是:sqlacodegen --tables [数据库名称] --outfile [要写入文件的路径]/[要写入的文件名称].py mysql://[用户名]:[密码]@[数据库host]/[数据库db]?charset=utf8然后报错:zsh: no matches found:然而想反向生成文件只需要打印到控制台即可,不需要写入文件,在终端输入:s.

2020-08-04 23:28:56

opencv图像识别车牌

放假前写的代码,pip更新了连注释都不能写,现在看一下真不知道自己写了什么鬼。最邪的是我的能在当前py文件下调用函数生成imread的对象,但是在测试文件就不行,检查过绝对路径和相对路径没有中文,我尝试通过导入imread对象还是None,我纳闷了。所以我决定还是把测试写到同一个地方吧。车牌已经打马赛克。目录1 安装2 代码实现2.1 调整图片2.2 去噪声2.3 Ca...

2020-02-10 23:12:40

tornado websocket实现后台推送数据

1、长轮询一句话来概括:长轮询就是客户端和服务器端保持连接,相互发信息。2、流程前端发出一个请求。 后端接收到请求后,触发on_message方法(执行write_message("hello"))。 前端收到“hello”触发on_message方法(执行渲染,把hello渲染到页面上)。 后端开始轮询,向前端发消息。 前端接收到信息后不断渲染新的内容。3、代码示例...

2020-04-13 22:54:20

python实现串口通信

因为店家只给了我两页纸的vc0706通信协议,许多细节我还是不清楚,写得也没有特别优雅,大家就凑合看吧。目录1 硬件设备2 serial安装3 实现串口通信3.1 发现端口3.2 发送命令3.2.1 协议格式3.2.2serial传送的方式3.3 获取版本号(hello world)3.4 复位3.5 照相3.5.1停止当前帧刷新3.5.2...

2020-02-08 23:43:26

python dict赋值列表会嵌套一个元祖

一、现象dict["key"] = [{"k1":"v1"},{"k2", "v2"}] 赋值后的结果dict["key"] = ([{"k1":"v1"},{"k2", "v2"}],),前端遍历数据,会把元祖转化成列表。返回前端的就是dict["key"] = [[{"k1":"v1"},{"k2", "v2"}],]]。二、解决办法改变赋值的方式改成dict = {"...

2020-05-06 18:03:33

爬虫吐槽

1、不要跟老娘说什么bs4什么xpath什么css选择器,傻逼吗?json不香吗?安利直接请求json文件。2、连限频都不会求你不要秀了,怕到人家服务器500只能说你损,403都是活该,还在用sleep?scrapy是不是不好限频?安利用ratelimite。3、错误也不会捕捉也不能重试?安利backoff。4、还可以写成插件,解藕又方便。安利pluginbase。...

2020-03-23 23:49:50

mac把python项目部署到ubuntu服务器没有root权限并且做定时任务

1、首先是把自己的项目代码上传到服务器中点击shell,左边点击sftp安全文件传输,右边新建远程连接点击+号添加服务器IP地址,填写用户,点击链接。或者是直接在终端执行以下命令:sftp 【你的用户名】@IP地址然后把什么.git、env、log、存放测试结果、.DS_Store、__pycache__等等的垃圾都不要上传了。put -r 【本地项目文件绝对路径】【存放...

2020-03-23 23:34:00

gitlab mergerequest操作

我今天做了一件错事别人叫我mr我直接push了,对不起,我错了,给各位大爷添堵了。不过幸好我把测试做足了。mr流程:新建一个分支,然后把代码commit然后push到新建的分支,而不是push当前的分支否则会把当前分支的东西覆盖。新建一个mr,在mr里面选择将要合并到哪一个分支,并选择要@的人。例子:远程仓库的分支有dev1,dev2, 我当前在本地的dev2分支,我想对handler文件...

2020-03-23 17:28:51

水tornado.access:404 GET /static/css/bootstrap.min.css.map

删除最后一行注释即可/*# sourceMappingURL=bootstrap.min.css.map */又水一篇

2020-02-26 17:33:03

python安装过程中Retrying (Retry(total=4, connect=None……after connection broken by 'ReadTimeoutError……

一、报错描述在安装的时候报错:WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443):...

2020-01-08 20:33:27

基于区块链的去中心化抗量子密钥管理系统

摘要:区块链技术在2008年被提出被称为比特币(我觉得应该是翻译为比特币应用了区块链技术),区块链技术是一种分布式的数据库。公钥基础设施PKI(Public Key Infrastructure)系统是一种中心化密钥管理系统。PKI系统很可能会出现单点故障。例如比特币和以太坊都用了经典的数字签名算法ECDSA。通过运用Shor的算法很容易会受到量子的攻击。在此文中,我们提出一种基于基于区块链的...

2019-12-21 15:41:41

【面试】INNODB和MYISAM的区别

MyISAM INNODB 支持主键和外键 × √ 支持事务 × √ 支持行锁表锁 支持表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作 只会锁住操作的那一行,其他行不会受到影响,适合高并发的场景。 缓存 只缓存索引,不缓存数据 不仅缓存索引还缓存真实数据 表空间 小 大 关注点 性能...

2019-11-26 15:07:05

以太坊笔记

1 以太坊和比特币工作机制的区别出块时间:以太坊出块时间短,比特币出块时间大约是10min而以太坊的出块时间大约是15s。 Mining Puzzle:以太坊是Memory hard以及是ASIC Resistance,目前以太坊和比特币都是proof of work 都是以工作量作为证明,而以太坊往后想转为权益证明proof of stake,因此也预留了难度炸弹,用于顺利过渡。 以太坊...

2019-11-19 22:24:58

比特币的挖矿

1挖矿的特点无记忆性:每一次挖矿的时间都是独立的,就是说在挖矿的过程中突然监听到新的区块已经成功发布了。 安全性:密码学的签名保证了安全,地址不是直接是公钥,是公钥的hash值。 匿名性:账户其实就是公私钥对,只要不花钱基本上就没有途径猜出是谁。2 挖矿的工具挖矿的工具演变过程:CPU→GPU→ASIC芯片 挖矿工具的趋势:专业化,效益最大化,只能用于某一种货币,同时伴随着矿机的...

2019-11-11 21:26:43

比特币的结点

1 区块链的结点类型1.1 全结点介绍全结点之前,相信大家都会疑惑在分布式的情况下,不可以保证每一个结点都是在线的,怎么去记录所有的交易内容?所以就需要全结点去把所有的交易记录保存到磁盘里面,而且要求全结点必须时时刻刻上线,记录最新的区块。1.1.1全结点的功能功能主要是三点:监听、校验、保存更新。监听:监听比特币网络上的交易信息。 监听矿工挖出来的区块。校验:查...

2019-11-11 17:10:48

区块链达成共识要解决的问题

我在学习时的有以下疑问。目录1 怎么定义一单交易1.1 处理反复花费同一笔钱的问题?1.2 钱是怎么产生的?1.3 交易过程是怎么样的?1.3.1假如某一次交易没有完全消耗所有的钱,要修改前面的区块把现在有的钱订正余额吗?1.3.2 那么按照上面的说法,就是输入的总量=输出的总量?1.3.3 为什么需要这一笔交易费?1.4怎么查询余额?1.5怎么去验证...

2019-11-05 16:58:51

比特币的Merkle tree

1区块链的数据结构1.1 特殊的单链表这个单链表就特殊在它是反过来,而且是hash指针作为记录当前最近的区块。反过来的意思是指指向是反向的,如下图:解析一下上面的图,第一个是创始区块,第三个块假如命名为H3(m3) ,H3(m3)= H2(m2+H(m2)),同理,第二个块相应命名为H2(m2) ,H2(m2)= H1(m1+H(m1)),hash指针记录的是当前最新的结点的H...

2019-11-04 18:44:12

查看更多

勋章 我的勋章
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。