- 博客(40)
- 问答 (1)
- 收藏
- 关注
原创 【6】包注意事项&文件操作
包包的路径从GOPATH/src后面的路径开始写起,路径分隔符用/想被别的包包调用,标识符是字母都要大写导入包时可以指定别名导入包但是不想使用包内的标识符,需要使用匿名导入每个包导入的时候会自动执行一个名为init()的函数,它没有参数也没有返回值,并且不能手动调用文件操作按行读取package mainimport ( "bufio" "fmt" "io" "os")func main() { file, err := os.Open("test.txt") if
2020-11-21 17:47:13
222
原创 【5】结构体方法函数接口的理解
结构体:type person sturct{ name string age int}可以把go中的结构体想象成python中的函数,定义结构的时候,结构体里面的变量,就是python里的实例属性go里面没有__init__,但是可以自己实现一个newPerson的方法,就当作init了方法:func (p *person) reName () { p.name = "改名了"}至于go里的方法,一般都用指针接收者,(值接收者相当于拷贝了一份值的副本,不会改变外部的值)可以把结
2020-11-21 15:50:34
384
原创 数据库上下文管理器
import pymysqlclass MysqlDB: def __init__(self, data_conf): self.connect = pymysql.connect(**data_conf) self.cursor = self.connect.cursor() def __enter__(self): return self.cursor def __exit__(self, exc_type, exc_va
2020-09-10 17:58:01
277
原创 2黑盒测试设计用例方法
等价类定义:输入具有代表性的子集等价类分为有效等价类----满足需求无效等价类----不满足需求判定表判定表简述:判定表是把作为条件的所有输入的各种条件以及对应输出值都罗列出来而形成的表格。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并可避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。场景法每个事件触发时的情景便形成了场景。而同一事件不同的出发顺序和处理结果形成事件流场景法:通过运用场景来对系统的功能点或业务流程进行描述,从而提高测试效果的一种方法。场景法一般包含基本流
2020-07-31 15:10:41
2828
原创 1测试用例概述
测试用例的定义测试用例(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期的结果,以便测试某个程序路径或核实是否满足某个特定需求。通过大量的测试用例来检验软件的运行效果,它是指导测试工作进行的依据。ps:通过设计输入数据,执行步骤,按此步骤应产生的预期结果测试用例(Test Case)是为了高效率的发现软件缺陷而精心设计的少量测试数据。实际测试中,由于无法达到穷举测试,所以需要大量输入数据中精选有代表性或特殊性的数据来作为测试数据。好的测试用例应该能发现尚未发现的软件缺陷。测
2020-07-29 15:06:16
548
原创 【4】go语言的学习之方法
在go语言中,可以给任意自定义类型添加方法1>面向过程与面向对象的区别package mainimport "fmt"// 面向过程func Add01(a, b int) int { return a + b}// 面向方法type long int// 方法的定义: func (变量 类型) 方法名 (参数 类型) 返回值 {}// 其中 (变量 类型) 又叫...
2020-04-09 11:17:11
180
原创 【2】go语言的学习之数组、切片、map和结构体
数组1> 数组的定义package mainimport "fmt"func main() { // 1、使用var关键字定义,需要指定数组的长度及数组元素的数据类型 var arr1 [3]int // 2、使用 := 定义并指定长度,使用这种方法需要给数组初值 arr2 := [3]int{1, 3, 5} /// 3、使用 := 定义不指定长度,同样要给初值 a...
2020-03-03 15:11:27
2549
原创 【3】go语言的学习之函数与指针
函数的定义格式func funcname (/*参数列表*/)(/*a type, b type*/){ //函数体 return a, b}不定参数列表的函数package mainimport "fmt"// ...int 不定长参数,可以为0个或多个func sum(numbers ...int) int { s := 0 for _, v := range nu...
2020-02-08 13:53:56
399
原创 【1】go语言的学习之基础语法
变量定义1> 使用var关键词声明变量,不赋值func main() { var a int var s string var t bool fmt.Println(a, s, t)}// int的默认值为0 string的默认值为空串 bool的默认值为false2> 使用var关键词声明变量,赋值func main() { var a, b int = 3...
2020-02-07 19:09:18
158
原创 随机生成ua的库
from fake_useragent import UserAgentua = UserAgent()ua.ieMozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US);ua.chromeMozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; T...
2019-10-29 15:58:51
8583
原创 使用flask_socketio实现服务端向客户端定时推送
https://www.cnblogs.com/luozx207/p/9714487.html
2019-09-05 18:47:07
2478
1
原创 ubuntu16.04安装anaocnda3
首先下载anaconda3的包,去这里下载:wget https://repo.continuum.io/archive/Anaconda3-2019.03-Linux-x86_64.sh然后执行sh文件:bash Anaconda3-2019.03-Linux-x86_64.sh接下来就根据提示按回车,属于yes最后安装完成以后,如果输入python发现不是anaconda里的话,执行 v...
2019-07-09 17:14:09
258
原创 用python向MongoDB插入时间字段
import pymongofrom dateutil import parserdateStr = "2019-05-14 01:11:11"myDatetime = parser.parse(dateStr)client = pymongo.MongoClient(host="127.0.0.1", port=27017)db = client["test"]db.ceshi.in...
2019-05-15 09:32:50
6379
原创 python爬虫
整理一些平常看到的关于爬虫的文章2019-01-03Python爬虫开源项目代码,爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网等 代码整理
2019-01-03 18:10:42
164
原创 es插件elasticsearch-head的安装
下载wget https://github.com/mobz/elasticsearch-head/archive/master.zip解压unzip master.zipelasticsearch-head是一个提供图形化的插件,其图形化是基于node.js的,所以我们需要先准备好node.js环境wget https://nodejs.org/dist/v8.1...
2018-12-28 15:57:09
558
原创 centos7下安装es5.*
首先需要安装java的jdk执行命令yum -y list java*查看可安装java版本。执行成功后可以看见如下的结果选择一个java版本进行安装,一定要选择 -devel 的安装,因为这个安装的是jdk,而不带这个安装下来的是jre。执行以下命令进行安装yum install -y java-1.8.0-openjdk-devel.x86_64等待安装完成即可。使用 ja...
2018-12-28 15:56:32
857
原创 python一些基础
list、tuple、dict、set共性:都是可以迭代的。名称可变性值可重复性是否有序其他特点list可变,可以修改元素[1,2]值可以重复有序相比于dict拥有占用内存小的特点,常用于堆栈的处理set可以修改元素(1,2)值不可以重复无序常用于判断值是否存在dict键不可变,值可变{1:1,2:2}键不可以重复,值可以重复...
2018-10-15 10:30:58
147
原创 在windows上安装和启动Elasticsearch+kibana
首先需要安装JDK至少需要1.8.0_73以上版本,参考这篇文章https://blog.youkuaiyun.com/u012934325/article/details/73441617/下载和解压缩Elasticsearch安装包并运行elasticsearch.batelasticsearch.bat在解压缩以后的bin目录下,直接双击运行即可如图,显示started就表示运行成功,可以去1...
2018-09-17 19:44:00
5144
原创 使用scrapy抓取人民网体育、社会模块
分析网站刚开始看完网站的这两个模块,感觉很麻烦,需要写很多解析函数,写很多规则,对两个模块下的每个小模块逐个进行处理,然后就朝着这个方向开始写,写到一半发现,我不仅需要判断这个模块里有没有图片,还要判断这个模块属不属于图集,感觉应该是自己方向错了,于是就重新观察网站,结合之前写的解析,最后分析发现: 我所需的数据,无非就是文章标题,文章内容,文章里的图。只是页面结构不一样,并且2015年之前...
2018-09-03 14:49:13
664
原创 scrapy的信号(signal)以及对下载中间件的一些总结
直接往redis里记录一下,我今天爬了多少数据 是否和我预期一样 爬虫状态码异常,你怎么查 我的爬虫没任务了它就会退出了,我不想它退出怎么办 爬虫关闭了,我不想看进程,我希望给我来个邮件 怎么办 我现在给你一批url让你去爬,完了,我待会再给你一批。时间不确定 你怎么办?以上,完美的阐述了scrapy信号的用途。首先,信号的一些基本概念就不说了,可以直接百度 : scra...
2018-08-31 00:07:46
3671
原创 scrapy-crawlspider爬取某新闻网站住房有关文章
首先创建项目,创建爬虫 scrapy startproject qianlongwang # 创建了一个项目在项目的根目录下,创建爬虫,一个项目可以有多个爬虫 scrapy genspider -t crawl fangchan xxxx.com # 创建了一个名为fangchan的爬虫,并指定了爬虫的活动范围第一步:明确需求也就是搞清楚自己想要什么数据,然后再...
2018-08-29 17:34:15
496
原创 xpath
选取div[@class=”author clearfix”]节点的同级节点的第一个a标签 div[@class=”author clearfix”]/following-sibling::a[1] 选取当前节点下所有文本内容 content = site.xpath(‘string(./div[@class=”content”]/span)’) 也可以参照这个http://www....
2018-08-29 03:03:59
338
原创 logging模块的使用
import logging# 创建loggerlogger = logging.getLogger()logger.setLevel(logging.INFO)# 创建handler,这个handler是输出到文件用的handler = logging.FileHandler('tieba_async_mysql.log',encoding='utf-8')# 为handler设置一...
2018-08-28 18:30:29
245
原创 协程爬取贴吧里发帖内容(redis做任务队列,mongo存储)
是用redis做任务队列时,要思考: 用什么数据类型来做任务队列 怎样才能防止重复爬取 首先了解一下redis可以存储什么数据类型: 字符串String 哈希hash 列表list 集合set 有序集合zset 浏览完这几种数据类型的功能之后,决定用list来做任务队列,用set来解决思考的问题,就是防止重复爬取的问题。 大概思...
2018-08-28 01:13:54
440
原创 多线程爬取一点资讯
首先观察网站,明确爬取目标经过观察,发现这个网站的数据都是异步加载的,而我此次爬取的目标,是一点资讯-段子模块下的内容分析目标站点既然是异步加载的,就可以在控制台的 Network标签下的xhr里面可以看到,异步请求的地址。如下 还有可以看到请求的参数 尝试请求数据有了请求地址,有了请求所需的参数,肯定会先试验一波。 经过试验,发现这个地址是正确的,会返回json数据...
2018-08-24 21:37:18
1912
5
原创 安装anadonda里没有的包
在需要用python调用js代码的时候,发现没有所需要的包:pyexecjs 当我用 coanda install pyexecjs 这个命令安装的时候,安装不上。 解决方法: - 打开anaconda的 Anaconda Prompt(anaconda的命令行) - 在命令行中输入 pip install pyexecjs(conda install pyexecjs 也行) -...
2018-08-23 16:28:14
2516
原创 一个简单的基于async/aiohttp的爬虫
import asyncioimport aiohttpfrom lxml import etreeimport queueurlQ = queue.Queue()f = open("title22.txt", "w",encoding='utf-8')async def get_html(url): ck = """Hm_lvt_dbc355aef238b6
2018-08-21 22:09:18
1501
原创 python3多线程爬虫(初级)
多线程爬虫,主要是玩队列,队列玩明白了,多线程自然也就起来了。#导入各种包import threadingimport queueimpot jsonfrom lxml import ertee定义爬取类,需要继承多线程:class down_spider(Threading.Thread): def __intit__(self,urlQ,dataQ): ...
2018-08-03 10:08:08
6149
2
转载 python2编码问题
https://blog.youkuaiyun.com/huludan/article/details/59518325 https://blog.youkuaiyun.com/qq_39551311/article/details/79459085
2018-07-31 10:34:09
140
原创 WSGI协议
在去了解wsgi协议之前,先思考一个问题:为什么我们使用flask、django等web框架的时候,将一个url指定到一个函数上面,前端页面在访问这个页面的时候,会调用这个函数?我们并没有做一些映射啊,http请求的处理啊之类的事情,但是为什么会自动处理这个请求,调用这个函数,并自动返回带响应头页面呢?带着这些问题去学wsgi,可能会有助于理解。首先,先了解一下wsgi的概念 WS...
2018-07-27 23:28:59
404
原创 一次请求到响应的过程
1. 在浏览器输入一个网址或在页面里点击一个超链接 2. 本机上的dns开始解析,看最近这两天有没有访问过这个网站(本机dns最多存储1000个最近访问的网址),有的话直接返回。没有的话,本机dns会将这个网址发送给dns根服务器 3. dns根服务器收到这个网址以后,进行解析(具体解析过程见下文),最后会返回一个ip地址给浏览器 4. 浏览器拿到这个ip以后,也就是知道这个web服...
2018-07-27 16:31:06
1763
原创 mysql数据库优化(初级)
记录三种优化方法创建表的时候假如我现在要创建一张表,其中包含了一个字段,用来存储身份证号,那么,就直接把这个字段的长度设置成19,假如以后身份证号位数会增加,我就重新设置字段长度。 主要想表达的就是,字段从一个小区间往大区间走,会简单,从大往小走,会出现不可预知的错误。(因为你不确定你之前存储的最长的内容有多长,假如最长的是200,而你现在要改成100,肯定会报错了。) 总结:在确定字...
2018-07-22 23:39:22
178
原创 python里for和else的搭配
用找质数作为代码示例for i in range(2,10): for n in range(2,i): if i % n == 0: #print(i, '=', n, '*', i//n) break else: print('found it %s' %i)注意:这里的 else 并不属于...
2018-07-16 17:40:27
6947
原创 java之多线程(一)
概念进程:进程指正在运行的程序线程:线程是进程种的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程,一个进程是可以又多个线程的,这种应用程序就称为多线程。总结:一个程序运行后至少有一个进程,一个进程中可以包含多个线程多线程的创建方式(两种)1、 继承Thread类(Thread类在java.lang包里) 步骤: 1. 定义一个类继承T...
2018-06-13 15:35:06
169
原创 jieba分词
jieba中文处理基本分词函数与用法jieba.cut 以及 jieba.cut_for_search 返回的数据结构都是一个可迭代的 generator,可以使用for循环来获取到分词后的每一个词语(unicode) jieba.cut 方法接受三个输入参数:需要分词的字符串cut_all 参数用来控制是否采用全模式HMM 参数用来控制使用使用HMM模型jieba....
2018-03-07 15:33:46
697
原创 centos7下安装与卸载anconda3
首先确保系统里没有其他anaconda版本,如果有,直接使用 rm -rf 命令删除掉整个文件夹然后清理.bashrc中的anaconda路径: 第一步:在根目录下输入:sudo gedit ~/.bashrc第二步:在.bashrc文件末尾用#号注释掉之前添加的路径(或直接删除): #export PATH=/home/lq/anaconda3/bin:$PATH第三步:
2018-01-22 12:40:14
11111
原创 感知器
感知器概念感知器是用于一种线性可分数据集的二类分类器算法。这种算法的局限性很大:只能将数据分为2类数据必须是线性可分的感知器由三部分组成:输入权值 一个感知器可以接受多个输入,每个输入上有一个权值,此外还有一个偏置项激活函数 感知器的激活函数可有很多选择(ps:激活函数相当于给属于一个阈值,达到次阈值则输出1,否则输出0)详情可参考https://www.zhihu.com/questio
2017-12-11 09:46:39
314
原创 函数式编程
operator模块示例 使用reduce函数和一个匿名函数计算阶乘from functools import reducedef fact(n): return reduce(lambda a,b:a*b, range(1, n+1))使用reduce和operator.mul函数计算接阶乘from functools import reducefrom poerator impo
2017-12-01 10:51:38
220
空空如也
树莓派4上使用ffmpeg实现的网络摄像头,当出现动态画面时候很不清晰,请问该怎么解决?
2019-11-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人