自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 Scrapy爬虫项目的管理部署

为了方便对爬虫项目的流程化管理,需要一款合适的工具。主要实现的功能有:能对爬虫项目的管理做到“统一”、“稳定”、“方便”;能够查看爬虫项目的运行情况,包括查看日志,控制台信息,告错预警信息等。以切身实际需求来说,普通的Scrapy项目已能够满足信息采集的需求,不过充其量也就是一个脚本,怎么样能更进一步,形成一个完整的采集项目呢?对程序代码的检测,采集内容的检测,服务运行的情况统计等内容是必不可少的。基于以上目标,学习搭建Scrapy爬虫项目的管理部署就显得十分重要了。

2023-03-21 16:31:48 1063 1

转载 docker中使用selenium selenium.common.exceptions.WebDriverException: Message: unknown error: session del

解决部署在服务器上的selenium异常

2022-06-24 11:23:11 627

原创 Django 操作中的小技巧

MODELS篇1. 读取数据库中信息,生成下拉框   在views文件中生成创建下拉框的类,需要传入choice字段信息,格式类似[(),()],也可以是随意一个可迭代对象。假如要用到数据库中的信息作为下拉框的内容。有个便捷的方法,一行代码生成:  其中"id","Department"就是数据库中的对应信息。生成类似[(id,Department),()]。2.models.filter()查询条件设置为可变的。  普通情况下查询语句为: models.表名.objects.filter(x

2022-04-26 14:24:50 1629

原创 WPS下合并doc文档

在WPS中合并文档

2022-04-12 15:45:08 520

原创 Pandas读取Excel文件,存入Mysql踩坑汇总

前言  在折腾数据方面的整理分析业务,数据保存在Excel文件中,调用查看各种不方便。想着导入到Mysql数据库中。图形化操作,直观,方便,还简单。幸运的是Navicat自带了直接导入Excel文件的功能选项。麻烦的是,每次更新数据,需要手动清空旧数据重新操作一下导入流程。(后来发现,直接导入也可以,有更新替换的选项)  So,操作导入Excel的流程用久了也觉得有点繁琐。(谁让我这么懒呢)想着能做一个自动化脚本,直接一键导入数据,减少操作流程。  简单的想法是:逐行读取Excel的数据,在数据库中设

2021-09-16 16:34:11 875

原创 程序中段使用进程池开启多任务的踩坑汇总

  代码中有个循环遍历读取数据库的操作,比较耗时。想着能把这个功能用多任务去执行,过程中遇到了一些意想不到的坑,既然踩过了那肯定不能白踩(下次别再踩同样的坑)。SO!这是一篇讲述如何踩坑的心酸历程。首先,我们来梳理一下所有的坑:1. 进程结束任务,返回结果。2. 进程池的传参,传递多个参数。3. 程序中段启动进程池。  确认好了坑的位置,接下来就由我来带领大家领略一下这些坑的风采O(∩_∩)O哈哈~一号坑:进程结束任务,返回结果。  程序中原来的操作是循环遍历读取数据库,然后返回一个有效值。刚

2021-07-30 16:37:26 373 1

转载 解决re.error: bad escape \x at position xxx (line xz, column xz)异常

问题  我先把定义放在这:re.sub(pattern, repl, string, count=0, flags=0)。  出现这个问题的时候,我搜索了一下,结合我的情况:我的 pattern 是没有进行错误的转义的。可能出错的就是在 repl 里。翻看源代码:def sub(pattern, repl, string, count=0, flags=0): """Return the string obtained by replacing the leftmost non-ove

2021-07-23 13:55:28 6308

原创 一键整理文件夹下的excel表格

  上一篇文章中,我们开发了一套一键自动化采集大众点评评论信息的脚本。采集的评论信息以Excel格式存储在一个文件夹下。  为了方便以后对Excel文件的管理,还有对于采集到的数据的规整,比如说,现在采集到的数据每一页评论数据保存在一个新的Excel中,每页数据有15条,看起来很不方便,正常的需求就是讲所有的数据放在一张Excel表格中。  那么,我们这篇要讲解的脚本就必须有两个功能:1. 可以将多个Excel文件合并的脚本;2. 可以一键删除所有Excel表格的脚本。(删除文件,也是懒得不想动的)

2021-06-22 11:35:38 898 2

原创 解决redis.exceptions.ResponseError异常:Please check the Redis logs for details about the RDB error

今天要解决的问题的主要有两部分:Redis的快照持久化ERROR,还有服务器磁盘不够的异常。一,Redis的快照持久化项目用到的Redis主要是作为一个缓存队列,存储爬虫信息的进出,一直也没什么问题。今天早上,检测脚本检测出的异常信息有点多,奔着解决异常的目的,手动启动了一下采集项目。这不,就出BUG了:异常信息显示,Redis被配置为保存数据库快照,但它目前不能持久化到硬盘。用来修改集合数据的命令不能用。请查看Redis日志的详细错误信息。异常的原因是: 强制关闭Redis快照导致不能持久化。

2020-10-10 15:33:47 6833

原创 Gerapy爬虫管理框架的安装和使用(一)

Gerapy 是一款分布式爬虫管理框架,支持 Python 3,基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发,Gerapy 可以帮助我们:更方便地控制爬虫运行更直观地查看爬虫状态更实时地查看爬取结果更简单地实现项目部署更统一地实现主机管理本文主要是梳理一下,在安装Gerapy框架中踩过的坑,方便下次安装和使用。Gerapy的安装重点主要分为两部分:

2020-08-03 14:28:32 1111

原创 对接钉钉实现对python项目的检测提醒

背景:公司目前在运营维护的是一款通过采集网页信息,保证项目内的信息能够定时更新的python项目。前面博客实现的多个功能也是在为这个项目服务。(这个项目也是部门几个小伙伴一起努力从零开发出来的)。因为网页的信息更新时间不能确定,并且网页的采集规则以及网站的正常访问,无法一直保持正常。如果人工去筛查出没有正常工作的网站的话,工作量也是非常巨大且繁琐的(经常会搞到两三点的那种)。为了保证采集项...

2020-04-23 14:34:32 567

原创 手把手教你分析中超16家球队谁是老大

发现一个好玩的数据分析项目《数据告诉你,中超16家球队谁是老大》,原文链接:https://mp.weixin.qq.com/s/-csfuvlb8xwTsD8p1VQxXg采集懂球帝网站上的中超16家球队球员的能力信息,分析出,各球队之间的纸面数据差距,依据数据预测出夺冠希望最大的No.1。整个项目,思路清晰,数据简单,是入门数据分析的不二法门。中超足球,也是大家期望值比较大的实用项目。...

2019-09-23 15:01:58 555

原创 python 构建装饰器计算代码运行耗时

代码的运行效率和性能优化是开发人员日常开发关注的重点。一段好的代码,最普通的标准是能够实现功能,接下来是优化代码,保证功能实现的前提下能够简洁代码行数,具体要求是内置模块>第三方库>手动撸码。内置模块作为python语言自带的系统资源,运行效率最快,消耗资源最少,往往一行代码就能实现各种骚操作,例如;collections模块的Counter,可以直接调用统计字符串和列表数组中元素...

2019-09-11 11:24:27 1211

原创 爬取《全职高手之巅峰荣耀》的豆瓣影评,分析漫改电影的优劣好坏

周末去看了《全职高手之巅峰荣耀》的大电影。记得是看扫毒2还是更前一点的电影时。全职大电影的预告片就出来了,第一眼看中的时候,就决定必须去看这场电影了。(每周一场的电影,默认成为习惯了)电影的好处在于,可以暂时脱离本身的角色设定,转而融入电影中的某个背景,感受不同的生活体验,精神感受,以及揣摩导演,制作者的一些小心思。理解电影想表达什么,理解制作者在某个小细节上的精彩处理,这也是看电影的一种另类收...

2019-08-19 17:36:10 1751 2

原创 爬取知乎高赞情话,甜蜜过七夕

又是一年一度的七夕情人节了!有女朋友的就牵好手,有男朋友的就抱紧腿,什么都么得的小伙伴就带好装备,静静的吃狗粮就ok了。在这个到处都冒着粉红泡泡的日子,不做点什么都不太好意思。作为一名合格的代码搬砖工,经过慎重的思考,决定为小伙伴们的幸福贡献一份微薄之力。特此爬取知乎上的高赞情话,让你在对女神/男神的约会中甜蜜暴击(咳咳咳,吃多了糖,有点齁)1.搜索知乎高赞情话话题或评论知乎搜索"情...

2019-08-07 17:27:49 1008

原创 Python Pandas操作Excel表格文件:创建新表格,追加数据

前言:python操作excel表格文件的增删读写,一般需要用到的第三方库有xlwt,xlrd。xlrd负责读取excel,xlwt负责写入excel文件。这种操作方法比较繁琐,效率还不错,通俗易懂。那么有没有一种更简便,操作更简单,效率还差不多的库呢?答案当然是必须有的。毕竟Python是以丰富的第三方库而作为热点的。Pandas是xlwt,xlrd库的封装库,拥有更全面的操作对象,csv...

2019-07-29 14:49:45 37575 2

原创 批量更新MySql数据

def update_uid(self): """ 3.修改更新uid :rtype: object """ lon_list = [] update_str = "" for i in range(10000): try: lon, uids = self.r.get('mysql_field') ...

2019-07-16 09:07:12 192

原创 CrawlSpider调用Scrapy_splash功能:Crawlspider的源码详解

前言Crawlspider是在scrapy普通Spider的基础上加入内部获取指定规则链接的功能,能有效提高我们获取页面中指定链接的效率。(咱也没测过效率,咱也不敢问),常用于 翻页,网页链接循环的采集任务。scrapy_splash 是在scrapy框架中用来处理js动态渲染页面的第三方库。使用起来还是挺顺手的。普通scrpy中使用scrpy_splash还是轻轻松松,干干单单的,将每次请...

2019-07-11 17:29:24 1136

原创 python 操作Excel表格

创建Excel表格import xlwtimport osdef create_excel(filepath, sheetname): # 创建excel文件 workbook = xlwt.Workbook() sheet = workbook.add_sheet(sheetname) caption_list = ['姓名', '简介', '公司'...

2019-07-02 09:23:25 260

原创 Redis队列

import redisimport pickleclass RedisQueue(): def __init__(self): redis_host = "172.24.4.9" redis_password = "123456" redis_db = 7 pool = redis.ConnectionPool(ho...

2019-06-29 14:33:51 170

原创 获取Cookies

class GetCookies(): def __init__(self): a = """TYCID=6ab34ee0e89411e8aea4576c50bb3005; undefined=6ab34ee0e89411e8aea4576c50bb3005; ssuid=5641567282; _ga=GA1.2.569292461.1542258108; __insp_...

2019-06-29 14:30:28 1018

原创 python中对于bool布尔值的取反

背景根据公司业务的需求,需要做一个对于mysql数据库的大批量更新。脚本嘛也是干干单单。使用了redis的队列做缓存,可以异步并发的多任务进行更新。有点难受的地方在于,请求访问时,因为一些网速,速率之内的原因,导致正常的数据会请求失败。处理的方法呢,就是多请求几次。不过,麻烦的地方在于,每次重新请求,都要讲原来get,和put的key转换。手动更换起来麻烦的一批。所以就想做一个自动的转换小...

2019-06-19 15:31:23 34066 3

原创 python Url编码和解码

为什么要用Url编码和解码?url带参数的请求格式为(举例): http://www.baidu.com/s?k1=v1&k2=v2当请求数据为字典data = {k1:v1, k2:v2},且参数中包含中文或者?、=等特殊符号时,通过url编码,将data转化为特定格式k1=v1&k2=v2,并且将中文和特殊符号进行编码,避免发生歧义将中文和特殊符号进行编码,避免发生歧义,...

2019-06-11 15:09:24 1030

原创 Elasticsearch 的安装与使用(三): python操作Elasticsearch增删改查

python链接ES: from elasticsearch import Elasticsearch self.es = Elasticsearch([{'host': "192.168.1.88", 'port': 9200}])可以指定链接的ES的IPES插入数据:插入单条数据 for i in range(10): self.es.index(index...

2019-06-06 09:32:49 1415

原创 python 读取各类文件格式的文本信息:doc,html,mht,excel

引言众所周知,python最强大的地方在于,python社区汇总拥有丰富的第三方库,开源的特性,使得有越来越多的技术开发者来完善python的完美性。未来人工智能,大数据方向,区块链的识别和进阶都将以python为中心来展开。咳咳咳! 好像有点打广告的嫌疑了。当前互联网信息共享时代,最重要的是什么?是数据。最优价值的是什么?是数据。最能直观体现技术水平的是什么?还是数据。所以,今天我们...

2019-05-24 13:49:30 8941

原创 python MongoDB 插入数据 去除重复数据

python 往MongoDB数据库中插入数据,经常会遇到的一个需求就是,对插入的数据进行去重。最笨的方法呢,就是先把所有的数据插入数据库里,再去除掉多余重复的数据。具体操作呢,繁琐,复杂,效率低,还总容易出现莫名其妙的bug。最理想的插入方法就是,如果数据库不存在,则插入数据;如果数据已经存在了,就不插入数据,或者更新数据。使用insert方法,目前还没发现什么去重的好用处。 能够更新数据...

2019-05-14 17:31:19 6372 3

原创 python 判断list内容是否为空

方式一:demo_list = []if len(demo_list): print("列表不为空")else: print("列表为空")方法二:demo_list = []if demo_List: print("列表不为空")else: print("列表为空")方法三:demo_list = []if not demo_list: print("列表为空"...

2019-05-08 14:41:26 6938

原创 解决UnicodeEncodeError: 'gbk' codec can't encode character u'\xa0' in position 148

背景:由于最近公司的业务需要,对数据库中的数据进行文章分类并打上对应的标签属性。最后选择调用百度云的人工智能文本分析aip接口。百度云的文本分析接口文档如下:需要接收一个content和title字段作为文本分析。正常情况下,读取数据库content和title字段直接传入就可以了。要命的是,当初产品决定content内存入的是html文本信息,方便前端页面的展示。所以我们需要先对读取...

2019-05-08 14:30:35 13448 1

转载 python计算程序运行的时间方法

1.运用场景在很多的时候我们需要计算我们程序的性能,这个时候我们常常需要统计程序运行的时间。下面我们就来说说怎么统计程序的运行时间。2. 实现方法计算Python的某个程序,或者是代码块运行的时间一般有三种方法。方法一import datetimestart = datetime.datetime.now()run_function(): # do something e...

2019-05-07 13:49:21 3050

原创 Mongodb中查询条件为列表的查询语句

背景:公司产品开发进入了白热化阶段了,数据库了的数据依据各自的分类也都井然有序的划分这。一切看起来是那么的美好。某一天,产品经理突然集合大家开会,产品展示上的分类,看起来有点多啊,严重影响了用户的体验。这样吧,我们把分类就简化成三个吧,应该很简单的吧,开发们?(嗯,很简单,简单你个*****!)拿人钱财,替人消灾。ε=(´ο`*)))唉,干脆就给数据打上标签吧,哪个分类需要什么标签的数据,就自...

2019-05-07 11:58:01 3067

转载 xpath获取同级元素的方法详解

XPath轴(XPath Axes)可定义某个相对于当前节点的节点集:1、child 选取当前节点的所有子元素2、parent 选取当前节点的父节点3、descendant 选取当前节点的所有后代元素(子、孙等)4、ancestor 选取当前节点的所有先辈(父、祖父等)5、descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身6、ancestor-...

2019-04-09 16:18:03 3633

原创 解决TypeError: 'NoneType' object is not subscriptable 读取MySQL数据库问题

执行MySQL数据库迁移时遇到的新bug:bug的意思是 类型异常错误,空类型不是一个可执行的脚本。问题的原因是,读取的MySQL数据为NULL,而且还在后面的使用中,对于这个null值进行了调用。一般出现在 fetchone,fetchall,fetchmany读取MySQL语句之后,将 未确定的数据赋值,问题就出在 img_List = img_list[“name”] 。通...

2019-04-04 10:24:20 54071 3

原创 解决bson.errors.InvalidDocument: Cannot encode object: Decimal(‘8500.00‘)数据插入MongoDB问题

背景:最近公司在做一个公众号的地方展示项目,原来的数据都是直接从MySQL中直接获取的。随着数据量的增大,查询效率越来越拖拉。然后呢,就想着把MySQL中的数据迁移到MangoDB中去。任务简洁明了,读取MySQL数据批量插入MangoDB中,任务完成,美滋滋。具体的数据迁移方法可以看这篇文章: https://blog.csdn.net/mygodit/article/details/88...

2019-04-04 09:17:15 5888 4

转载 MySQL字段类型详解

MySQL 字段类型MySQL字段类型MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。数值类型类型 大小 范围(有符号) 范围(无符号) 用途TINYINT 1 字节 (-128,127) (0,255) 小整数值SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值MEDIUMINT 3 字节 (-8 388 6...

2019-04-04 08:48:05 1001

原创 MySQL数据批量迁移至MongDB

背景故事:公司的MySQL数据库关联太复杂了,结构难缠,关系混乱,为了后续项目的方便查询,老板交代,需要将MySQL的数据全部迁移至MongoDB中去。这MySQL数据量大概在40M左右,数据量5w+,说起来不算太大,如果一条一条的读取迁移,任务也能完成,具体实施起来,效率就是慢的一批。果断转换思路。ε=(´ο`*)))唉,想当年也是操作数据库的一把好手,不曾想,在这爬虫领域逍遥自在了许久,...

2019-03-29 11:18:33 525

原创 windows安装dokcer(一):

windows下安装docker需要注意的是系统版本,以及是否开启虚拟化应用。目前官网的docker只支持win10企业版或者专业版64。win7,win8以及其他所有版本安装docker需要安装dockerToolbox。“Docker官方已经不再推荐Boot2Docker,而是使用Docker Machine来代替。可以使用Docker Toolbox工具箱来安装docker machin...

2019-03-02 17:23:57 331

原创 列表推导式的条件判断语句

常用的列表推导式的条件判断有两种写法:第一种:[value for value in value_list if value.endswith(“sq”)]第二种[value.replace(“sq”, “xl”) if value.endswith(“sq”) else value for value in value_list]...

2019-03-01 11:48:17 2546

原创 百度显示指定网站的搜索内容

site:域名 搜索内容注意: 域名不要写网站链接,搜索内容和域名必须用空格分割。

2019-02-15 11:20:18 6112

原创 scrapy中主动触发关闭爬虫的方法

背景:最近喜欢上了一本小说<全职高手>,有点郁闷的是,在网页中看小说看一章就得点击一下,严重影响了用户体验,所以想着自己写一个爬虫,将小说加载到一个text文件中,随时随地都能满足自己。结果在获取内容的过程中发现,小说网站做的太low了,竟然将两本小说放在一起,爬虫没有人看着的话就会把无用的小说内容也获取到,所以需要我们设置条件,主动触发关闭爬虫scrapy的运行。在spider中...

2019-02-14 09:34:23 4016

原创 python 交互redis 的ZADD方法异常: AttributeError: ‘int‘ object has no attribute ‘items‘

背景:公司需要做一个通用的爬虫的模块,获取各个网站的有效信息,反反爬措施呢就用到了随机代理,鉴于测试的时效和方便。借用了崔大大的代理池。这里不得不赞美一下大大,代理池贼好用,功能完整,代理质量也不错,前面一直用的都是好好的,这两天想测一下58房屋的信息质量,没成想就报了个幺蛾子。具体异常如下所示:嗯哼?什么鬼啊,整数类型的对象没有items属性,来来来,走过路过不要错过,让我们去看一下到...

2019-01-29 14:06:12 18516 31

空空如也

空空如也

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

TA关注的人

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