自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redisearch 基本使用

Redisearch实现的全文检索功能服务“检索”是很多产品中无法绕开的一个功能模块,当数据量小的时候可以使用模糊查询等操作凑合一下,但是当面临海量数据和高并发的时候,业界常用 elasticsearch 和 lucene 等方案,但是elasticsearch对运行时内存有着最低限额,其运行时大小推荐 2G 以上的内存空间,并且需要额外的磁盘空间做持久化存储。其实mongoDB 内置的正则匹...

2019-10-18 22:16:59 6008

原创 git基本操作

git 上传文件创建本地项目,在项目根目录执行git init命令git init在git服务器上创建一个仓库,这里使用GitHub创建一个仓库https://github.com/ckjh/education.git执行git remote add origin ,git path 可以在【Clone or download】中获取git remote add origin ht...

2019-09-19 17:08:15 156 1

原创 在 vue中使用jquery

安装jquery 依赖cnpm install jquery --save修改配置文件首先添加一行代码,引入webpack,如下图所示:const webpack = require('webpack');添加代码配置jQuery插件:plugins: [ new webpack.ProvidePlugin({ $: 'jquery', 'windo...

2019-08-31 11:42:47 271

原创 数据序列化

序列化的定义:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。应用场景:我们在视图类中从数据库拿到的数据,其类型是QuerySet,不能直接传给接口在这里我们回顾一下values()方法:goods_list = models.goods.objects.all()goods_list = list(goods_list.values('...

2019-08-20 23:16:44 307

原创 vue 安装和创建项目

下载https://nodejs.org/en/安装指定路径,一路点nextglobal全局安装(命令行使用)npm install -g 使用淘宝 NPM 镜像cnpm --registry=https://registry.npm.taobao.org检测是否安装成功vue list新建vue项目vue init webpack project_na...

2019-08-20 18:17:59 109

原创 MongoDB 的特点

简简单了解一下MongoDB特点面向文档高性能高可用易扩展数据量从小到大,需要扩展,根据实际情况,我们要对数据库进行扩展,有如下两种思路:1.纵向:纵向扩展就是使用计算能力更强的机器。提升计算机的配置,但是配置高价格也随之上升,当上升到一定的程度就无法提升了。(物理极限)2.横向:横向扩展就是通过分区将数据分散到更多机器上,这就是所谓的mongodb分布式。...

2019-08-17 11:40:36 895

原创 增量式爬虫

增量式爬虫目的增量式爬虫:在上一次爬取的基础上继续爬取数据,通过增量式爬虫,我们可以继续爬取因故未完全爬完的数据,或网站更新的数据.去重那么如何判断我们是否爬过某条数据是关键,显然,每次爬取判断该数据是否存在是不可取的 , 所以这里我们利用了Redis数据库集合自动去重的功能.向Redis 库中的集合里放:返回0,就是已经存过返回1,说明是新数据ps: Redis数据库性能...

2019-08-16 20:57:44 1163

原创 pymongo 的使用

在pymongo遇到的困难在这里记一下(这个版本是3.8)连接建立连接pymongoconn = pymongo.MongoClient('localhost', 27017)表collection = conn['db']['article'] # 或collection = conn.db.article表名=连接名['库名']['集合名']分组func = ''...

2019-08-15 23:35:40 579

原创 Scrapy 与 Django 交互

总结一下 Scrapy 与 Django 交互需要注意的问题首先是 Django 这部分的操作常规创建项目,创建子应用,在setting.py注册子应用(爬虫部分无需注册)…然后是 Scrapy 部分的代码scrapy 框架所在的文件夹,与子应用并列爬虫文件正常写items.py from scrapy_djangoitem import DjangoItem from a...

2019-08-13 23:49:32 941 1

原创 文件读写方法

open()权限w,wb,w+ w+ : 创建,覆盖,读r,rb,r+ r+ :读、写a,ab,a+ a+创建,追加,读字符编码encoding=''gbk,utf-8,gb2312 …with open(……) as f:passf 为文件句柄方法读read() 读全部—返回strreadlines() 读取全...

2019-08-11 15:10:42 132

原创 TCP连接

TCP协议则是建立在IP协议之上的。TCP协议负责在两台计算机之间建立可靠连接,保证数据包按顺序到达。TCP协议会通过握手建立连接,然后,对每个IP包编号,确保对方按顺序收到,如果包丢掉了,就自动重发。许多常用的更高级的协议都是建立在TCP协议基础上的,比如用于浏览器的HTTP协议、发送邮件的SMTP协议等。一个TCP报文除了包含要传输的数据外,还包含源IP地址和目标IP地址,源端口号和目标...

2019-08-11 14:34:17 243

原创 selenium浏览器自动化测试框架

应用场景在爬取数据的过程中, 经常遇到动态数据加载, 一般动态数据加载有两种, 一种通过ajax请求加载数据, 另一种通过js代码加载动态数据.selenium可以模拟人操作真实浏览器, 获取加载完成的页面数据url加密过无法破解规律简介selenium是一个web自动化测试用的框架. 程序员可以通过代码实现对浏览器的控制支持多款浏览器, 如谷歌浏览器, 火狐浏览器等等, 当然也支...

2019-08-11 13:33:27 275

原创 回顾多线程爬取数据

明确目的:将多线程爬虫涉及到的技术点回顾一下首先,是基本流程,多线程爬虫架构图如下首先,我们需要回顾一下队列和线程:**队列**用来存url,和 网页的响应内容,给线程提供数据线程数据class Queue(object): """ enqueue(item) 往队列中添加一个item元素 dequeue() 从队列头部删除一个元素 is_empty() 判断一个队列是否...

2019-08-10 23:42:22 241

原创 浅析Scrapy框架数据持久化

将数据保存到MongoDB,MySQL和图片下载先来看一下流程图数据持久化是最后一道步骤,由pipeline完成,我们可以在这里将爬取到的有效的信息保存到数据库,或是将需要的图片下载到本地.温习一下将数据保存到MongoDB,MySQL和图片下载的步骤.准备工作数据库:MySQL事先建表,用来保存信息,而MongoDB则无需事先创建集合在 items.py 中定义字段,例如:cl...

2019-08-10 12:00:19 194

原创 简析selenium和scrapy对接

selenium和 Scrapy对接爬取某些需要动态加载的页面,使用selenium模块是诸多方法中的一个,直接使用selenium模块并不复杂,在Scrapy框架下依然可以使用该模块解决动态加载的问题.首先再熟悉下流程 Scrapy的基本流程图如下引擎负责控制系统所有组件之间的数据流,并在某些动作发生时触发事件。调度器(用来接受引擎发过来的请求, 压入队列中, 并在引擎...

2019-08-10 01:35:16 1739 2

空空如也

空空如也

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

TA关注的人

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