自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 论坛 (1)
  • 收藏
  • 关注

原创 python微信机器人pc端

相信很多玩python的都知道,以前有个第三方库可以操作微信,实现自动回复等等功能,其原理是用https进行通信的, 但是现在大部分微信都不能登录网页版了,很多好玩的项目都受到了影响。因此,我来了。通过截取电脑版微信的消息可以做到功能更全面的效果,项目地址:https://github.com/huihuilo/pchatpchat微信pc端python代码操控(欢迎提出问题,作者尽最大努力改进)先点个赞吧背景很多系统有监控群聊消息的需求 大部分微信都登录不了网页版,python操纵

2020-11-20 18:30:42 82

原创 主机ping不了虚拟机

背景:虚拟机是程序员平时练习与开发经常要用到的工具,平时经常会有本机与虚拟机连接、传输等需求,比如本机与虚拟机文件共享,本机与虚拟机网络连接(ssh连接,web访问虚拟机服务等等)。这篇文章记录的问题是,主机访问不了虚拟机的web服务,ssh也连接不上,ping都ping不同,初步判断是虚拟机的IP地址换了(如果没有配静态IP的话),但查看了IP发现没有换,第二次判断是虚拟机开启了防火墙,把80和22端口屏蔽了,但是想想不应该呀,web服务和ssh连接不上还可能是因为防火墙的问题,但是ping都ping不通

2020-10-12 17:29:45 182 1

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

后端开发中会经常使用一些重复性的命令,比如项目部署,文件同步等,每次都要执行一堆相同的命令,这些重复性的工作完全可以用脚本来代替。expect是基于TCL的相对简单的一个免费的脚本编程工具语言,用来实现自动和交互式任务程序语言进行通信,无需人工干预。一般expect的工作流程是:spawn启动进程 --> expect期待关键字 --> send向进程发送字符 --> 退出结束。首先安装expect:sudo apt install expect举个栗子:#!.

2020-06-08 20:09:11 85

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

如何在以下有序二维矩阵中查找一个数:alist = [ [1, 2, 3, 5, 8, 10], [11, 16, 19, 84, 98, 100], [111, 123, 148, 589, 857, 908], [2222, 4898, 7587, 8787, 9898, 9999] ]方法一:把二维矩阵分解成一维的二分法查找,就是进行m次的二...

2020-04-24 20:13:31 109

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

上篇文章分析了美团移动端的页面结构和设计技术结构,先爬详情链接,再爬详情内容,这篇先来实现详情链接的采集。首先将一些固定不变的数据先拿下来,比如城市相关的数据,先采集下来放到数据库或者缓存中,或者存储到文件中。如果稍微想想,是不是觉得类别也是固定不变的数据,一开始我也是这么想的,后面调试的时候发现,每个城市的类别有所区别,有些类别在其他偏远点的城市是没有的,所以每个city都需要请求一...

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

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

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

2020-03-30 17:43:19 319

原创 [python] 讲讲上下文管理器

什么是上下文管理器简单来说,上下文管理器的目的就是规定对象的使用范围,如果超出范围就采取相应“处理”;比如:f = open('filename.txt')data = f.read()f.close()打开一个文件,读取文件内容,关闭文件。正常的业务中,这样写是不够的,因为在操作资源的时候有可能出现错误,为了加强代码健壮性,需要经常改为:​​​​​​​try: f...

2020-03-11 15:05:02 81

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

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

2020-02-09 17:17:42 714

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

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

2020-02-07 18:12:44 126

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

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

2019-08-31 00:07:38 3095

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

open函数是python的一个内置函数,用于打开一个文件,创建一个 file 对象。但是,你真的懂open函数吗?先来看看网上的教程:函数语法open(name[, mode[, buffering]])参数说明: name : 一个包含了你要访问的文件名称的字符串值。 mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全...

2019-08-25 23:30:40 71

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

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

2019-08-22 23:52:31 1088

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

rsync是linux中远程数据同步工具,可以快速同步多台机器之间的文件,rsync使用rsync算法来进行数据的同步,只会传输两个文件之间的不同部分,所以在传输速度上特别快。这里只讲讲本人工作中最常用的用法。相信很多人都是用ftp文件传输工具进行上传文件,之前我也使用ftp上传文件的,但是后来安装了wsl环境(在Windows10下运行linux子系统),可以在linux下操作相关命令了,所...

2019-08-21 21:50:53 56

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

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

2019-08-20 23:42:14 3200

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

问题:sudo supervisorctl restart 项目失败查看日志:ubuntu16.04默认supervisor的日志放在/var/log/supervisor/supervisor.conf gave up: webtools entered FATAL state, too many start retries too quickly从报错信息看出,是服务重启...

2019-08-16 00:03:50 1592

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

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

2019-08-15 00:03:02 747

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

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

2019-08-13 00:01:06 400

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

rsync是linux中远程数据同步工具,可以快速同步多台机器之间的文件,rsync使用rsync算法来进行数据的同步,只会传输两个文件之间的不同部分,所以在传输速度上特别快。这里只讲讲本人工作中最常用的用法。相信很多人都是用ftp文件传输工具进行上传文件,之前我也使用ftp上传文件的,但是后来安装了wsl环境(在Windows10下运行linux子系统),可以在linux下操作相关命令了,所...

2019-08-12 00:10:13 117

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

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

2019-08-12 00:02:34 209

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

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

2019-06-17 22:54:19 613

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

Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。相比在Windows下用虚拟机来运行Linux,WSL要方便得多,但是每次退出wsl后,所开启的服务,如:ssh, mysql, supervisor等服务就是用不了,每次得手动的重启开启,非常的不方便,本文就以我工作和实战中遇到的问题来...

2019-06-16 01:06:29 814

原创 Windows10安装Linux系统(WSL)

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

2019-06-02 17:12:20 1041

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

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

2019-05-19 17:04:58 1238

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

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

2019-05-14 17:04:50 217

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

中间件中间件是 Django 请求/响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统,用于全局改变 Django 的输入或输出。激活:添加到Django配置文件中的MIDDLEWARE_CLASSES元组中 每个中间件组件是一个独立的Python类,可以定义下面方法中的一个或多个 _init_:无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否启用当前中间件 ...

2019-05-13 11:29:25 563

原创 使用国内的pip镜像

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

2019-05-09 11:09:08 121

原创 Django模板中反向解析url

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

2019-05-08 19:36:31 478

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

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

2019-05-08 16:59:39 653

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

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

2019-05-08 16:48:01 190

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

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

2019-05-03 00:42:31 116

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

1. 首先下载虚拟机:VMware Workstation Pro 14.1.3 Build9474260https://download3.vmware.com/software/wkst/file/VMware-workstation-full-14.1.3-9474260.exeVMware Workstation Pro12.5.9 Build 7535481https://d...

2019-05-01 11:25:45 613

原创 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/DE4raCNSz6Om-9cfC2nM4CIa/map.htm&gt; (failed 1 times):...

2018-12-25 00:05:38 3680

原创 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_icon_value=None)这是最基础的modelview类该视图不关心你的模型是如何存储和管...

2018-12-24 23:49:46 251

原创 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 复制到已经添加环境变量的路径目录下,这样在控制台下就可以直接使用curl命令了。...

2018-12-24 23:49:10 283

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

在scrapy的默认配置文件中看到这四个配置:CLOSESPIDER_TIMEOUT = 0CLOSESPIDER_PAGECOUNT = 0CLOSESPIDER_ITEMCOUNT = 0CLOSESPIDER_ERRORCOUNT = 0这四个配置是配置爬虫自动关闭条件的,等于0代表不开启。CLOSESPIDER_TIMEOUT默认值:0一个整数值,单位为秒。...

2018-10-24 00:06:39 4181

原创 scrapy中meta的一个坑点

scrapy的meta的作用就是在执行scrapy.Request()函数时把一些回掉函数中需要的数据传进去,meta必须是一个字典,在下一个函数中可以使用response.meta防问,这里需要注意的是,meta传递的数据是浅拷贝传递的,如果传递的数据是可变的数据类型,那么很容易造成数据不对应的错误,以下是本人在工作中的遇到此问题的代码片段: def parse_jinyan(sel...

2018-10-17 21:08:00 2775

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

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

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

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

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

2018-10-10 15:52:07 432

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

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

2018-09-29 23:34:30 3139

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

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

2018-09-28 00:27:09 331

空空如也

python3.6 xpath为什么输出为空列表

发表于 2017-12-17 最后回复 2017-12-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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