自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 expect完成Linux上的重复性工作

后端开发中会经常使用一些重复性的命令,比如项目部署,文件同步等,每次都要执行一堆相同的命令,这些重复性的工作完全可以用脚本来代替。 expect是基于TCL的相对简单的一个免费的脚本编程工具语言,用来实现自动和交互式任务程序语言进行通信,无需人工干预。 一般expect的工作流程是:spawn...

2020-06-08 20:09:11 44 0

原创 二分法查找一个有序的二维矩阵

如何在以下有序二维矩阵中查找一个数: alist = [ [1, 2, 3, 5, 8, 10], [11, 16, 19, 84, 98, 100], [111, 123, 148, 589, 857, 908], [2222, 4898, 7587, 878...

2020-04-24 20:13:31 74 0

原创 [爬虫] 美团商家信息采集-详情链接采集

上篇文章分析了美团移动端的页面结构和设计技术结构,先爬详情链接,再爬详情内容,这篇先来实现详情链接的采集。 首先将一些固定不变的数据先拿下来,比如城市相关的数据,先采集下来放到数据库或者缓存中,或者存储到文件中。 如果稍微想想,是不是觉得类别也是固定不变的数据,一开始我也是这么想的,后面调...

2020-03-30 17:47:37 261 2

原创 [爬虫] 美团商家信息采集-初步分析

这篇文章分享我爬美团信息的经验给你们。 首先,要爬一个网站的数据,可以选择网页端,移动端,app端。相对来说,app端是最不好爬的,其次是网页端,最好爬的是移动端,所以我往往会选择移动端去爬取。 要爬取的信息在商家的详情页,如果要整站爬取,就需要遍历每个城市,遍历每个类别,遍历每一页。 ...

2020-03-30 17:43:19 209 0

原创 [python] 上下文管理器

什么是上下文管理器 简单来说,上下文管理器的目的就是规定对象的使用范围,如果超出范围就采取相应“处理”;比如: f = open('filename.txt') data = f.read() f.close() 打开一个文件,读取文件内容,关闭文件。正常的业务中,这样...

2020-03-11 15:05:02 55 0

原创 python实现可以相加的类对象

在python中大部分数据类型都可以相加,比如:字符串,列表,元组,整型等等。那么我们自己实现的类,怎么使其能够相加? 字符串,列表,元组等等也是一个对象,在python中一切皆对象嘛,之所以这些对象支持相加,是因为其内部实现了__add__这个魔法方法。 可以查看这些对象的源码,发现都有实现...

2020-02-09 17:17:42 324 0

原创 用heapq模块实现按优先级排序的优先级队列

需求: 实现一个按优先级排序的队列,能够push和pop数据 在队列上每次pop都是返回优先级最高的元素 如果优先级相同,按它们最初被加入时的顺序返回 如果优先级发生改变,你该如何将其移至新的位置? 使用标准库heapq来一步步的实现。 heapq模块提供了堆排序算法的实现。注意这里指的...

2020-02-07 18:12:44 74 0

原创 [linux]wsl环境挂载window共享文件

​场景:公司有一台内网的机器用来共享文件,这里面的磁盘都是T级以上,平时大家都是把文件存储到这台电脑上,确保公司的资源安全。如果要用脚本来处理文件,就需要挂载到内网的linux服务器上。 linux的mount命令就是用来挂载磁盘的,下面是本人在内网linux服务器上,将window的共享文...

2019-08-31 00:07:38 2028 0

原创 [python]你真的理解open函数吗?

open函数是python的一个内置函数,用于打开一个文件,创建一个 file 对象。 但是,你真的懂open函数吗? 先来看看网上的教程: 函数语法 open(name[, mode[, buffering]]) 参数说明: name : 一个包含了你要访问的文件名称的字符串值...

2019-08-25 23:30:40 58 0

原创 [python]用requests请求接口报LineTooLong的错误

今天用requests库来请求接口合成公众号文章的音频时,一直合成失败,查看日志,报的是同样的错误: Traceback (most recent call last): File "/home/rhys/.virtualenvs/tools-backend/lib/python...

2019-08-22 23:52:31 605 0

原创 [linux]远程数据同步命令rsync

rsync是linux中远程数据同步工具,可以快速同步多台机器之间的文件,rsync使用rsync算法来进行数据的同步,只会传输两个文件之间的不同部分,所以在传输速度上特别快。 这里只讲讲本人工作中最常用的用法。相信很多人都是用ftp文件传输工具进行上传文件,之前我也使用ftp上传文件的,但是后...

2019-08-21 21:50:53 47 0

原创 [python]提取PPT中的文字(包括图片中的文字)

python是一门很强大的语言,因为有着丰富的第三方库,所以可以说Python是无所不能的。 很多人都知道,Python可以操作Excel,PDF·还有PPT,这篇文章就围绕Python提取PPT中的文字来写,包括提取PPT中的艺术字,图片中的文字。 因为实现环境是linux,所以无法用win...

2019-08-20 23:42:14 2373 0

原创 [linux]supervisor重启服务失败

问题:sudo supervisorctl restart 项目失败 查看日志: ubuntu16.04默认supervisor的日志放在 /var/log/supervisor/supervisor.conf gave up: webtools entered FATAL state...

2019-08-16 00:03:50 1079 0

原创 [linux+python]获取mp3音频的时长

今天接到一个需求:获取合成音频的时长,提供给前端使用,便于实现音频播放进度的功能。 心想,在python看来,这都不是事,python的第三方库那么丰富,肯定有python库可以实现这个需求的啦,于是上网一搜,真的有很多。但是,往往编程这一行,不是掉坑里,就是在掉坑的路上。 最后选择了...

2019-08-15 00:03:02 518 0

原创 [linux]supervisor+uwsgi无法启动flask

supervisor是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。 uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。 uwsgi配置: [uwsgi]#socket = 127.0.0.1:5570 htt...

2019-08-13 00:01:06 262 0

原创 [linux]远程数据同步命令rsync

rsync是linux中远程数据同步工具,可以快速同步多台机器之间的文件,rsync使用rsync算法来进行数据的同步,只会传输两个文件之间的不同部分,所以在传输速度上特别快。 这里只讲讲本人工作中最常用的用法。相信很多人都是用ftp文件传输工具进行上传文件,之前我也使用ftp上传文件的,但是后...

2019-08-12 00:10:13 71 0

原创 [linux]定时删除指定日期文件

有这样一个需求,需要定时删除一天前的音频文件,只保留一天内的音频文件。第一反应想到的就是定时任务,如果有很好的方法,欢迎留言。 不管是黑猫白猫,能抓到老鼠的都是好猫,不管什么方法,能解决问题的方法就是好方法,当然,如果有更好的办法,那肯定优先选择的。 首先,写出删除指定日期文件的脚本或者命令,...

2019-08-12 00:02:34 88 0

原创 flask确认框中如何显示换行符,单引号,双引号

最近在做自动化部署的时候,需要提醒用户是否确定执行相应的操作,如图: 这很容易实现,只需在相应的标签中添加onclick属性: <a href="{{ url_for('.execute_shell_command', shell_command= c...

2019-06-17 22:54:19 395 0

原创 在WSL环境下ssh, mysql, reids-server, supervisor等服务自动开启

Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。相比在Windows下用虚拟机来运行Linux,WSL要方便得多,但是每次退出wsl后,所开启的服务,如:ssh, mysql, sup...

2019-06-16 01:06:29 636 0

原创 Windows10安装Linux系统(WSL)

WSL是“Windows Subsystem for Linux”的缩写,顾名思义,WSL就是Windows系统的Linux子系统,其作为Windows组件搭载在Windows10周年更新(1607)后的Windows系统中 目前我们要使用Linux,主要有几种方式: 1.Linux单系统 2...

2019-06-02 17:12:20 428 0

原创 django富文本编辑器tinymce报错TypeError: build_attrs() takes from 1 to 2 positional arguments but 3 were give

tinymce富文本编辑器 借助富文本编辑器,管理员能够编辑出来一个包含html的页面,从而页面的显示效果,可以由管理员定义,而不用完全依赖于前期开发人员 使用编辑器的显示效果为: 下载安装 进入虚拟环境用pip安装: pip install django-tinymce 应用到项...

2019-05-19 17:04:58 825 0

原创 有关python实例属性,类属性,可变数据类型,不可变数据类型的一道面试题

问题:请写出以下代码的输出结果 class Person: childrens = 1 #类属性 def __init__(self): pass t1 = Person() #实例对象 t2 = Person() #实例对象 t2.childrens =...

2019-05-14 17:04:50 167 0

原创 Django中间件process_exception()报错:TypeError: process_exception() missing 1 required positional argument

中间件 中间件是 Django 请求/响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统,用于全局改变 Django 的输入或输出。 激活:添加到Django配置文件中的MIDDLEWARE_CLASSES元组中 每个中间件组件是一个独立的Python类,可以定义下面方法中的一个或多个...

2019-05-13 11:29:25 359 0

原创 使用国内的pip镜像

经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致下载慢或者直接下载失败,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的烦恼。 网上有很多可用的源,例如: 阿里: http://mirrors.ali...

2019-05-09 11:09:08 90 0

原创 Django模板中反向解析url

应用范围: 模板中的超链接 视图中的重定向 使用方法: 定义url时,在项目urls.py中为include定义namespace属性 在应用的urls.py中为url定义name属性 使用时,在模板中使用url标签,在视图中使用reverse函数,根据正则表达式动态生成地址,减轻后期维...

2019-05-08 19:36:31 331 0

原创 Django使用数据库生成模型类

正常的开发流程 在models.py中定义模型类,要求继承自models.Model 把应用加入settings.py文件的installed_app项 生成迁移文件 执行迁移生成表 使用模型类进行crud操作 使用数据库生成模型类 python manage.py inspect...

2019-05-08 16:59:39 527 0

原创 ubuntu使用Virtualenvwrapper管理虚拟环境

Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做: 1. 将所有虚拟环境整合在一个目录下(Ubuntu整合在~/.virtualenvs) 2. 管理(新增,删除,复制)虚拟环境 3. 切换虚拟环境 安装 sudo apt-get instal...

2019-05-08 16:48:01 125 0

转载 为VMware虚拟机安装的Ubuntu 16.04配置静态IP

首先安装VMware虚拟机和Ubuntu 16.04系统 VMware虚拟机下载链接:https://pan.baidu.com/s/1IQRSSstvFK9NUwhe_1xu9w 提取码:k36u 去阿里云开源镜像站下载Ubuntu 16.04镜像:https://mirrors.aliy...

2019-05-03 00:42:31 89 0

原创 用虚拟机搭建服务器,并通过ssh连接,并安装python3.6

1. 首先下载虚拟机: VMware Workstation Pro 14.1.3 Build9474260https://download3.vmware.com/software/wkst/file/VMware-workstation-full-14.1.3-9474260.exe VM...

2019-05-01 11:25:45 518 0

原创 scrapy报错:twisted.python.failure.Failure twisted.web._newclient.ParseError

scrapy项目开发过程中,scrapy运行请求返回解析错误: 2018-12-21 13:02:19 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying &lt;GET https://map.haodf.com/hospital...

2018-12-25 00:05:38 3061 0

原创 flask_admin的modelview源码解析

class BaseModelView(model, name=None, category=None, endpoint=None, url=None, static_folder=None, menu_class_name=None, menu_icon_type=None, menu_ic...

2018-12-24 23:49:46 201 0

原创 curl 在Windows的安装与使用

curl 下载地址:https://curl.haxx.se/windows/dl-7.61.1_5/curl-7.61.1_5-win64-mingw.zip 下载完成后解压,将 curl.exe 所在的目录(解压后的bin目录下)路径添加到环境变量中或者将 curl.exe 复制到已经添加环境...

2018-12-24 23:49:10 258 0

原创 scrapy配置爬虫关闭的条件

在scrapy的默认配置文件中看到这四个配置: CLOSESPIDER_TIMEOUT = 0 CLOSESPIDER_PAGECOUNT = 0 CLOSESPIDER_ITEMCOUNT = 0 CLOSESPIDER_ERRORCOUNT = 0 这四个配置是配置爬虫自动关闭条件的,...

2018-10-24 00:06:39 3728 0

原创 scrapy中meta的一个坑点

scrapy的meta的作用就是在执行scrapy.Request()函数时把一些回掉函数中需要的数据传进去,meta必须是一个字典,在下一个函数中可以使用response.meta防问,这里需要注意的是,meta传递的数据是浅拷贝传递的,如果传递的数据是可变的数据类型,那么很容易造成数据不对应的...

2018-10-17 21:08:00 2358 0

原创 python2.7利用reduce函数将列表中的多个字典根据某个vaule去重

先介绍reduce()函数的用法 描述 reduce() 函数会对参数序列中元素进行累积。 函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 funct...

2018-10-15 23:22:28 641 1

原创 scrapy下载中间件设置User-Agent和IP代理注意细节

在使用scrapy写爬虫的时候经常使用代理来避免被禁,也可以通过下载延迟download_delay等方式,在设置代理的时候需要注意两个细节,虽然不是重点,但是这也是一个隐藏的坑点。 1. SPIDER_MIDDLEWARES 和 DOWNLOADER_MIDDLEWARES 会容易混淆,因为在...

2018-10-10 15:52:07 357 0

原创 python2.7操作mysql库MySQLdb中execute 方法的注意要点

使用sql执行语句的时候,很容易忘了提交,即 db.comment() ,在执行插入语句的时候如果忘记comment,实际上数据是没有插入进去的,需要comment才能成功插入数据。 使用execute执行插入语句的时候,如果插入的数据写在sql中,即不传插入的参数execute(sql, ar...

2018-09-29 23:34:30 2786 0

原创 Windows与python2.7环境下部署scrapy项目遇到的问题

在windows环境中,当我们需要部署scrapy项目到服务器时,常用到scrapyd,作为部署管理工具,在服务器端安装scrapyd并运行后,就可以正常使用。 但是,当我们需要将windows本地的scrapy项目部署到服务器上时,需要安装scrapyd-client,用于打包项目,并发送给远...

2018-09-28 00:27:09 289 0

原创 scrapy.Spider中close方法的作用

在scrapy中,需要实现的爬虫类都需要继承scrapy.Spider类,其中的源码解析: class Spider(object_ref): name = None #爬虫的名字,spider的名字定义了Scrapy如何定位(并初始化)spider custom_settin...

2018-09-25 23:56:33 4734 0

原创 scrapy 在Request中设置flag,针对性处理对应的request

在构造Request时,增加flags这个参数,该参数会被转换为列表类型,查看源码的转换 self.flags = [] if flags is None else list(flags) yield scrapy.Request( url=url,...

2018-09-20 14:31:18 616 0

提示
确定要删除当前文章?
取消 删除