自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 问答 (1)
  • 收藏
  • 关注

原创 自如字体加密

自如字体加密

2022-07-05 16:14:59 299 1

转载 proxy

文章是狗哥的公众号https://mp.weixin.qq.com/s?__biz=MzIyMjQ3OTE5MA==&mid=2247483738&idx=1&sn=1d53007e7805d88e5841a582718f0e16&chksm=e82d9763df5a1e75e59b27c3b6772b78eeb2b9ccd219df09362b8a4ac7f455766d8e76f6b362&scene=21#wechat_redirect(function (

2022-04-19 14:00:14 175

原创 js逆向之登录调试流程(基础)

本文只是记录流程,案例请前往 鱼哥公众号“咸鱼学Python”查看链接https://mp.weixin.qq.com/s/6t9V5HIRagye4ZQlgkHgewhttps://mp.weixin.qq.com/s/6t9V5HIRagye4ZQlgkHgew如果网页有跳转,必须勾选 preservelog 防止丢包看一下有没有框架 右键查看框架源代码(弹出式登陆界面)登陆尽量使用错误密码 防止跳转查看关键登陆包 分析哪些参数是加密的使用别的浏览器分析哪些参数是固定的值

2022-03-10 11:06:27 1191

原创 fiddler笔记

不会抓包,谈何爬虫http原理所谓的http代理,其实就是代理客户机的http访问,主要代理浏览器访问页面。代理服务器是介于浏览器和web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。fiddler的使用抓包工具抓取HTTPS的包的时候跟HTTP的直接转发是不同的。所以我们需要配置HTTPS的证书。打开后选择HTTPS,勾选上这个选项,然后勾选

2022-02-23 09:55:16 302

转载 爬虫常见加密解密算法

本文总结了在爬虫中常见的各种加密算法、编码算法的原理、在 JavaScript 中和 Python 中的基本实现方法,遇到 JS 加密的时候可以快速还原加密过程,有的网站在加密的过程中可能还经过了其他处理,但是大致的方法是一样的。常见加密算法:对称加密(加密解密密钥相同):DES、3DES、AES、RC4、Rabbit非对称加密(区分公钥和私钥):RSA、DSA、ECC消息摘要算法/签名算法:MD5、SHA、HMAC、PBKDF2常见编码算法:Base64JavaScript 加密解密模块

2022-01-15 10:46:59 827

原创 4k图片爬取

爬虫import requestsimport osfrom lxml import etree# 创建文件夹try: os.mkdir('./4k动物爬取')except Exception: print('文件已创建!')for i in range(2,172): i = str(i) #目录页面 ml_url = 'https://pic.netbian.com/4kdongwu//index_' + i + '.html' # UA伪装

2021-09-27 11:14:46 56

原创 linux安装python

linux安装python环境安装依赖包yum install -y make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm libpcap-devel xz-devel libtiff-devel libjpeg-devel freetype-devel lcms2-devel libwebp-devel tcl-devel libffi-devel创建安装目

2021-07-30 16:00:17 139

原创 爬取医院百科并存入数据库

爬取医院百度百科数据并存入数据库百度百科是没有加密的,获取到的医院官网有的超出数据库字段长度,所以用了md5加密固定长度代码import requestsimport osimport pymysqlfrom lxml import etreefrom pymysql.converters import escape_stringimport hashlibm = hashlib.md5()headers = {'User-Agent': 'Mozilla/5.0 (Windows

2021-04-25 11:01:11 543 1

原创 简单scrapyd使用

一、首先要搞清楚几个概念1、scrapy是什么?是一个爬虫框架,你可以创建一个scrapy项目2、scrapyd是什么?相当于一个组价,能够将scrapy项目进行远程部署、调度使用等因此scrapyd可以看做一个cs(client-server)程序,因此毫无疑问我们需要安装和配置scrapyd(server)和连接的scrapy-client(client)二、安装scrapyd和scrapyd-client和配置1、安装pip install scrapydpip install sc

2021-02-24 16:50:50 379 1

原创 阿宁的爬虫之旅-----文字识别(百度ocr)

文字识别无论是在我们的生活还是工作中,及不可或缺的遇到一些文字识别,爬虫中的文字识别也是不可或缺的,向大家介绍一下百度的文字识别在首页搜索ocr[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vxPSpe7d-1611731777872)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210127145113574.png)]进入这个界面点击第二个[外链图片转存失败,源

2021-01-27 15:17:49 253

原创 阿宁的爬虫之旅----xpath定位

id 获取id的属性值<input id="su" class="bg s_btn btnhover" value="百度一下" type="submit"/>//*[@id='su'] 获取id 的属性为'su' 的值或//input[contains(@class,'bg s_btn')]starts-with 顾名思义,匹配一个属性开始位置的关键字 —模糊定位contains 匹配一个属性值中包含的字符串 —模糊定位<a class="lb" href="

2021-01-26 17:01:41 71

原创 阿宁的爬虫之旅----代理ip

代理ip现在代理IP使用的是网站是蘑菇代理API代理连接在使用API代理的时候必须设置白名单。heards = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'}proxies = { 'https':'ip:端口号' #'https':source['mag

2021-01-26 16:59:15 176

原创 阿宁的爬虫之旅----xpath语法

选取节点xpath使用路径表达式在XML文档中选取节点。节点通过沿着路径或者step来选取的。表达式描述nodename选取此节点的所有子节点/从根节点选取//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置.选取当前节点…选取当前节点的父节点@选取属性谓语(Predicates)谓语用来查找某个特定的节点或者包含某个指定的值得节点。谓语被嵌在方括号中路径表达式结果/bookstore/book[1]

2021-01-26 16:57:39 81

原创 django登录注册

注册 regist注册采用的是form表单,提交到数据库,在登录的时候,查询数据,看用户是否注册,如果用户没有注册,则返回注册页面注册(1)models.py文件里创建相关字段:用户姓名 密码 cookies携带的ticketfrom django.db import models# Create your models here.class Users(models.Model): u_name = models.CharField(max_length=10) u_pass

2021-01-19 16:55:46 624

原创 阿宁的学习总结----jQuery ajax()方法

jQuery ajax()方法语法$.ajax({name:value, name:value, ... })名称/值名称值/描述async布尔值,表示请求是否异步处理。默认是 true。beforeSend(xhr)发送请求前运行的函数。cache布尔值,表示浏览器是否缓存被请求页面。默认是 true。complete(xhr,status)请求完成时运行的函数(在请求成功或失败之后均调用,即在 success 和 error 函数之后)。c

2021-01-14 15:59:35 82

转载 初次部署django + gunicorn + nginx

初次部署django+gunicorn+nginx写在前面,这只是我所遇到的情况,如果有错请一定要告诉我,转载请注明出处,码字不易,谢谢。环境 ubuntu16.04 python3.6 django1.11 gunicorn19.7.1 nginx1.10.3写在前面其实无论是在部署,还是在其他方面,我们总会遇到一些问题。建议当感觉自己被卡住的时候,试着退出局部,从更高一层去观察问题,因为这个事情无论是多复杂,它还是由人设计出来的,它身上多多少少带着一些人类思考模式的通性(这个表达有点问题,但是

2021-01-14 14:28:01 243

原创 Django----链接数据库,增删改查

django-admin startproject mysite查看项目是否创建成功(网站)python manage,py runserver创建一个apppython manage.py startapp polls创建一个视图在 `polls/views.py文件下输入代码from django.http import HttpResponsedef index(request): return HttpResponse("Hello")在polls文件下创建一个新的u

2020-12-24 10:00:10 113

原创 阿宁的Python学习-----time模块和datetime模块

python time模块和datetime模块一、time模块在python中有是三种表示时间的方式**时间戳:**是指某个时间与1970年1月1日00:00:00的差值,单位为秒,是一个浮点型数值;**格式化时间:**格式化时间由字母和数字表示的时间,比如:’Mon Oct 29 16:04:27 2018’;**元组:**将时间的信息放到一个元组中。时间格式转换图:函数time.time(): 返回一个时间戳import timeprint(time.time())#输

2020-12-12 16:05:29 103

转载 阿宁的Python学习-----http/https

Http存在的问题上过网的朋友都知道,网络是非常不安全的。尤其是公共场所很多免费的wifi,或许只是攻击者的一个诱饵。还有大家平时喜欢用的万能钥匙,等等。那我们平时上网可能会存在哪些风险呢?  1. 泄密,个人隐私、账户密码等信息可能会被盗取。  2. 篡改,收到的数据可能被第三方修改过,或被植入广告等。  3. 假冒,访问的站点非目标服务器站点。如域名欺骗、域名劫持、钓鱼网站等。可能住你隔壁穿人字拖、说话都略显羞涩的小王,一到夜深人静的时候就开始偷窥你的一举一动!陪你一起看91某社区的电影还好,

2020-12-11 15:28:29 224

转载 阿宁的Python学习----- Python操作redis

Python操作redispython连接方式:[点击(http://www.cnblogs.com/melonjiang/p/5342383.html)下面介绍详细使用1、String 操作redis中的String在在内存中按照一个name对应一个value来存储set()#在Redis中设置值,默认不存在则创建,存在则修改r.set('name', 'zhangsan')'''参数: set(name, value, ex=None, px=None, nx=False, x

2020-12-11 14:52:38 364

原创 阿宁的Python学习-----锁

锁(lock)锁的使用姿势姿势一threading.lock(): 创建锁对象acquire(): 获取锁release (): 释放锁import threading #创建锁对象lock = threading.Lock() #获取锁lock.acquire() #释放锁lock.release()注释: acquire() 和 release() 是成对出现的。往往死锁的出现就是 release 没有执行姿势二threading.

2020-12-10 16:56:59 125

原创 阿宁的Python学习-----线程、进程和协程

概念从计算机硬件角度:计算机的核心就是PCU,承担了所有的的计算任务。一个CPU,在一个时间切片里只能运行一个程序[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yxRjNYq3-1607582806900)(https://pics6.baidu.com/feed/9d82d158ccbf6c81e57bedafbd80e13332fa4069.jpeg?token=7652eb8df6e3a37ce2af573d46442d9b&s=E43836D056F6E

2020-12-10 14:47:24 130

原创 阿宁的Python学习-----序列化和反序列化

概述1、为什么要序列化因为TCP/IP协议只支持字节数组的传输,不能直接传对象。对象序列化的结果一定是字节数组!当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列在恢复为对象。2、序列化和反序列化序列化:及有序的列,数据转换成二进制的有序的过程协议:规定序列化和反序列化的转换方式就是把数据保存成二进制存储起来,其是定义的规则,其规则称为协议,如果规定了协议,则

2020-12-08 16:11:55 100

原创 阿宁的Python学习-----__slots__

slotspython是一个动态语言,可以支持我们在运行时动态给类、对象添加属性或者方法;但是如果我们想要限制可以添加的属性或方法该怎么办呢?python允许在定义class的时候,定义一个特殊的__slots__变量,来限制该class能添加的属性:class Student(object): __slots__ = ('name','age') #用tuple定义允许绑定的属性名称添加属性class Student(object): __slots__ = ('name',

2020-12-05 14:48:42 108

原创 阿宁的Python学习-----文件与IO

文件操作冯诺依曼体系架构运算器:用于完成各种算术运算、逻辑运算和数据传送等数据加工处理。控制器:用于控制程序的执行,是计算机的大脑。运算器和控制器组成计算机的中央处理器(CPU)。控制器根据存放在存储器中的指令序列(程序)进行工作,并由一个程序计数器控制指令的执行。控制器具有判断能力,能根据计算结果选择不同的工作流程。存储器:用于记忆程序和数据,例如:内存。程序和数据以二进制代码形式不加区别地存放在存储器中,存放位置由地址确定。输入设备:用于将数据或程序输入到计算机中,例如

2020-12-03 16:40:35 136

原创 阿宁的Python学习-----继承和多态

继承和多态在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。继承最大的好处就是子类获得了父类的全部变量和方法的同时,又可以根据需要进行修改。拓展。lass Foo(superA, superB,superC....):class DerivedClassName(modname.BaseClassName): ## 当父类定义在另外的

2020-12-03 16:31:09 123

原创 阿宁的Python学习-----类和对象

python类和对象1、定义Python 是一种面向对象的编程语言。Python 中的几乎所有东西都是对象,拥有属性和方法。类:类是抽象的,一类实物的共性的体现,有共性的属性和行为对象:具体化,实例化,有具体的属性值,有具体的行为一个类对应N多个对象类包含属性以及方法:class 类名: 属性 方法创建类 (class)类名:符合标识符的规定但是一般是每个单词的首字母大写。(驼峰命名)class Myclass: i = 12345 def f(sel

2020-12-03 15:26:40 142

原创 阿宁的Python学习-----filter()函数

filter**filter()**函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。该接受两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回True 或 False,最后将返回 True 的元素放到新列表中。语法filter(function, iterable)参数function -- 判断函数。iterable -- 可迭代对象。例子: 过滤列表中所有的奇数def isadd(n): return n%2 ==

2020-12-02 20:58:58 133

原创 阿宁的Python学习-----map/reduce函数

map()map()方法会将一个函数映射到序列的每一个元素上,生成新序列,包含所函数返回值。语法:map(function, iterable, ...)function -- 函数iterable -- 一个或多个序列也就是说序列里每一个元素都被当做x变量,放到一个函数f(x)里,其结果是f(x1)、f(x2)、f(x3)…组成的新序列。def f(x): return x*xr = map(f,[1,2,3,4,5,6,7,8,9])print(list(r))#输出结果

2020-12-02 16:27:40 125 1

原创 可迭代对象迭代器与生成器

一、容器容器就是一个用来存储多个元素的数据结构,常见的容器包括【列表】、【元组】、【字典】、【集合】、【字符串】。容器有两个特点:1、容器中的元素可通过迭代获取 2、所有容器中的元素被存储在内存中二、可迭代对象​ 可迭代对象,简单的说就是可以被迭代获取的对象,iterable定义了可返回迭代器的__iter__方法​ 通过iter()方法,我们能将可迭代对象返回成迭代器。from collections.abc import Iterable#定义一个列表,其本身是可迭代对象lsit =.

2020-11-29 17:09:50 135

原创 阿宁的Python学习-----转义字符

Python转义字符在需要在字符中使用特殊字符时,python 用反斜杠 ** 转义字符。如下表:转义字符描述实例(在行尾时)续行符>>> print("line1 \ ... line2 \ ... line3") line1 line2 line3 >>>\反斜杠符号>>> print("\\") \’单引号>>> print('\'') '"双引号>>>

2020-11-25 21:09:35 159

原创 阿宁的Python学习-----字符串内建函数

python字符串内建函数Python 的字符串常用内建函数如下:序号方法及描述1capitalize() 将字符串的第一个字符转换为大写2center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。3count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

2020-11-25 21:08:15 80

原创 阿宁的Python学习-----字符串运算符

Python字符串运算符下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”:操作符描述实例+字符串连接a + b 输出结果: HelloPython*重复输出字符串a*2 输出结果:HelloHello[]通过索引获取字符串中字符a[1] 输出结果 e[ : ]截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。a[1:4] 输出结果 ellin成员运算符 - 如果字符串中包含给定的

2020-11-25 21:07:44 176

原创 阿宁的Python学习-----函数

函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。定义一个函数可以自由定义一个自己想要功能的函数,以下是简单的规则:函数代码块以def关键词开头,后接函数标识符名称和圆括号()。任何传入参数和变量自身必须放在圆括号中间,圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。函数内容以冒号 : 起始,并且缩进return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 ret

2020-11-25 20:59:13 297 1

原创 阿宁的Python学习-----去重

去重第一种方法lists = [1,2,3,4,2,3,4]print(list(set(lists)))第二种办法#使用字典 -- 没有保持原来的顺序lists = [1,2,3,4,2,3,4]a = {}lists = a.fromkeys(lists)lists = lists.keys()print(list(lists))第三种办法#使用循环遍历法 -- 代码不够简洁,不高端lists = [1,2,3,4,2,3,4]list1 = []for i in li

2020-11-25 17:18:01 106

原创 阿宁的python学习-----字典

字典 dict字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:d = {key1 : value1, key2 : value2 }键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。dict = {'a': 1, 'b': 2, 'b': '3'}print(dict['b'])#输出结果'3'print(dict)#输出结

2020-11-25 14:22:36 169

原创 阿宁的python学习-----元组

python 元组python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号() ,列表使用方括号[]元组的创建很简单,只需要在括号中添加元素,并使用逗号隔开。实例tup1 = ('Google', 'Runoob', 1997, 2000)tup2 = (1, 2, 3, 4, 5 )tup3 = "a", "b", "c", "d" # 不需要括号也可以print(type(tup3))<**class** 'tuple'>创建空元组tup1 =

2020-11-25 14:13:43 157

原创 阿宁的python学习-----列表

listPython内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。创建一个列表:list = [1,2,3,'d','e','a','f','a','r','a',5,6,2]与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。例:list = [1,2,3,'d','e','a','f','a','r','a',5,6,2]print(list[0])print(list[1])print(list[2])#输出结果

2020-11-19 17:28:18 136

原创 阿宁的Python学习-----字符串

字符串内置函数字符串定义:是一个有序的字符的集合,用于存储和表示基本文本信息,’ ’ 或 " " 或 ’ ’ ’ ’ ’ '中间包含的的内容称之为字符串特性:只能存放一个值不可变按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序字符串常用操作字母处理# 字母处理.upper() #全部大写.lower() #全部小写.swapcase() #大小写互换.capitalize() #首字母大写,其余小写.title() #首字母大写例a = 'zgsafafY

2020-11-19 14:58:55 261 2

原创 阿宁的python学习-----python常见字符编码及其转换

一、python常见字符编码字符编码目前使用的编码方式有:ASCII码(一个字节)、Unicode码(两个字节)、UTF-8码(可变长的编码)。我们已经知道了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。ASCLL码ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/I

2020-11-18 17:25:49 230

空空如也

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

TA关注的人

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