自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 redis的stream类型命令详解

前言最近项目中使用到了 Redis 中的 stream 数据类型作为消息队列使用,相比于其他 redis 实现的消息队列更加方便。由于是第一次使用,记录下知识点以后备用。Stream类型基于 redis 的消息队列有好多种实现,但是大多都有其特点和问题,本身 redis 只是个缓存啊????,估计官方都看不下去了,这才在 redis 5.0 里加了一种数据类型专门用来实现典型的消息队列。stream 类型几乎具备了一个消息队列所需要用到的所有功能,包括但不限于:消息 ID 的序列化生成消息遍历

2020-11-05 09:27:27 1807

原创 Scrapy中process_request返回request和None的区别

前言上篇文章中遇到了一个问题,就是在 process_request 函数中返回 request 对象导致爬虫退出的问题,这篇文章来解释下。环境搭建为了弄清楚这个问题,首先搭建一个可以运行 scrapy 的环境,新建一个 scrapy 项目,scrapy startproject testscrapy,之后添加一个名为 testscrapy 的爬虫,代码为:import scrapy as scrapyfrom scrapy import Requestclass TestScrapy(sc

2020-11-03 10:28:05 2106 1

原创 scrapy学习之爬虫练习平台5

前言本篇文章是这个爬虫练习平台的最后一篇了,由于是学习 Scrapy,所以前面跳过了验证码逆向的题目,后面跳过了 APK 逆向的题目,验证码和 APK 看情况以后再单独写文章。本篇文章写使用代理 IP 突破 IP 地址反爬。环境配置本次使用的环境和 ssr1 的环境是一样的,不使用 selenium,数据库仍然使用 Mongo。在开始写代码之前还需要搭建一个代理池,由于这里只是学习 Scrapy,就不自己搭建了,使用 GitHub 开源的 proxy_pool,就可以满足需求。代理池地址在这里,搭

2020-11-03 10:26:22 452

原创 scrapy学习之爬虫练习平台4

前言上一篇文章讲了如何使用 scrapy 和 selenium 搭配来爬取数据,这篇文章来写一下如何用 selenium 来爬取使用 Ajax 加载数据的网站并且过掉反爬。环境配置本篇文章中所用到的环境都已经在上篇文章中配置好了,不知道如何使用的小伙伴可以移步上一篇文章。开始爬取antispider1antispider1 说明如下:对接 WebDriver 反爬,检测到使用 WebDriver 就不显示页面,适合用作 WebDriver 反爬练习。WebDriver 反爬,说明使用 s

2020-11-03 10:26:02 395

原创 scrapy学习之爬虫练习平台3

前言上一篇文章爬取了爬虫练习平台的 spa 部分,有 Ajax 和接口加密,没有涉及到登录,都是 GET 请求。本篇文章继续爬后面的 login 部分,涉及到了登录和验证。环境准备考虑到抓取数据字段的多样性,本次爬取将数据库换成了 Mongo,不需要每次都新建字段,加快抓取速度。新建一个名为 test 的数据库,其他环境和设置不变。开始爬取login1login1 说明如下:模拟登录网站,登录时用户名和密码经过加密处理,适合 JavaScript 逆向分析。是一个需要登录的网站,而且

2020-11-03 10:25:44 941

原创 scrapy学习之爬虫练习平台2

前言上一篇文章中爬取了爬虫练习平台的所有 ssr 网站,都是比较简单的,没有反爬措施,这次来爬一下后面的 spa 系列。环境准备这里沿用了上篇文章的环境和设置,就不重新搭建环境了。开始爬取spa1spa1 说明如下:电影数据网站,无反爬,数据通过 Ajax 加载,页面动态渲染,适合 Ajax 分析和动态页面渲染爬取。还是无反爬,Ajax 加载数据,那么最简单的方法就是打开 Chrome 控制台, 找 xhr 请求。一共有两个请求,第一个请求经过了 301 重定向,所以实际接收到数据的

2020-11-03 10:25:17 736

原创 scrapy学习之爬虫练习平台爬取

前言为了练习 Scrapy,找了一个爬虫练习平台,网址为:https://scrape.center/,目前爬取了前十个比较简单的网站,在此感谢平台作者提供的练习平台。环境搭建开始爬取前,首先要先把环境搭建起来,Pycharm 新建项目 learnscrapy 和对应的虚拟环境,安装好 Scrapy 和 PyMysql,执行 scrapy startproject learnscrapy 新建一个 scrapy 项目,搭建环境的具体步骤就不详细说了,项目也开源到了 Github 上,地址在这。开始前

2020-11-02 19:40:50 2277 3

原创 requests中post参数data和json区别

HTTP协议介绍我们知道,HTTP 协议通过 ASCII 码的形式进行传输,是建立在 TCP/IP 协议之上的应用层协议,HTTP/1.1 协议中规定的请求方式有八种:OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT。其中通过 POST 提交表单的方式最为常见。HTTP/1.1 协议规定将一个完整的 HTTP 请求分为三个部分,请求行,请求头和请求主体。大概框架如下:<method> <request-URL> <versio

2020-11-02 19:37:22 6529

原创 pyinstaller打包pyecharts报错解决

通过 Dockerfile 创建镜像时,发现打包 pyecharts 库后运行报错,遂查询了一下,发现官方并没有支持这个库的打包,只能我自己动手了。打包好的程序直接运行的话会报 FileNotFoundError:FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\x\\AppData\\Local\\Temp\\_MEI6362\\pyecharts\\datasets\\map_filename.json'查询了

2020-11-02 19:32:57 1878

原创 numpy 中 argmax 函数的使用

先来看函数定义:argmax(a, axis=None, out=None)# a 表示 array# axis 表示指定的轴,默认是 None,表示把 array 平铺,# out 默认为 None,如果指定,那么返回的结果会插入其中axis 默认为 None二维 array 情况import numpy as npa = np.array([[2,5,6],[7,6,1]])print(np.argmax(a))3输出结果为 3,因为 a 里面 7 是最大的,如果没有指定

2020-11-02 19:31:29 889

原创 Nginx-Caddy之HTTP-HTTPS代理区别

偶然的机会,发现 HTTP 代理和 HTTPS 代理这两个词,没接触过 HTTPS 代理,所以动手查了查,记录一下。HTTP 代理普通的 HTTP 代理是将浏览器发出的 HTTP 请求直接发送到代理服务器,然后代理服务器将 HTTP 请求进行解析,添加对应的源 IP(这里不考虑高匿代理),根据代理服务器的不同会对请求头进行不同的修改,然后将修改后的请求头和请求体一起发送到对应的服务器,然后等待服务器回复,将服务器返回的 HTTP 请求转发给客户端,完成代理任务。在这种情况下,HTTP 请求存在数据被代理

2020-11-02 19:29:23 973 2

原创 Linux下7z压缩解压软件区别

最近需要在 Ubuntu下用 7z 来压缩点东西,发现 Ubuntu 默认没有安装 7z 可执行程序,So 自己 apt 一个。搜索发现 7z 有三个安装包,分别是:p7zip,p7zip-full,p7zip-rar。三个安装包的区别是:p7zip:包含 7zr(最小的7zip归档工具),仅仅只能处理原生的 7z 格式。p7zip-full:包含7z,支持 7z、LZMA2、XZ、ZIP、CAB、GZIP、BZIP2、ARJ、TAR、CPIO、RPM、ISO 和 DEB 格式。p7z

2020-11-02 19:27:12 1971

原创 frp同时转发远程桌面的TCP和UDP端口

前言笔记本放在家里,通过远程桌面连上去使用,不用每天都背着电脑跑来跑去了哈哈。但是使用过程中发现鼠标稍稍有一点不跟手,和服务器的延迟并不高,单向顶多十几毫秒,研究了下发现是因为单纯使用 TCP 的问题,所以就有了这篇文章。初始方案为了保证安全,初始方案使用了 frp 的 stcp 隧道。需要在两台设备上都部署 frpc,然后和服务器上部署的 frps 通信。stcp 安全的 TCP 内网代理,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。这种情况下远程桌面的流量会通

2020-11-02 19:25:38 6683 12

原创 AES加密密钥和数据过短导致加密失败

昨天写爬虫需要用到 AES 加密用户密码,用的 Python,使用了 pycryptodome 这个库,随手填了一个密钥 11和需要加密的数据 11,我用的 AES 加密的 ECB 模式。发现加密后的结果和网页上的加密结果不一样, 然后才牵扯出了加密库默认的填充值问题。查询发现 PKCS#7 填充模式默认的填充是数据和 16 取余数,余数是多少就在后边补多少个余数。0102 0203 03 0304 04 04 0405 05 05 05 0506 06 06 06 06 06...类

2020-11-02 19:22:44 892 2

原创 Bitlocker使用及原理

解释Bitlocker 可以拆分为bit locker,直接翻译的话就是比特锁,意思是每个 bit 都加密。Bitlocker 使用 AES 加密算法加密整个卷来保护数据。简单来说,BitLocker 会将 Windows 的安装分区或者其他用于保存文件的分区进行加密,并将密钥保存在硬盘之外的地方,并对早期启动组件完整性检查,合并到一起来增强数据保护。BitLocker 主要有两种工作模式:TPM 模式和 U盘模式,同时为了实现更高程度的安全,我们还可以同时启用这两种模式。加密模式有三种认证机制可

2020-11-02 19:16:45 13525

VCForPython27

缺少这个库的可以下载

2017-07-19

空空如也

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

TA关注的人

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