自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 QQ邮箱登录逆向

QQ邮箱登录的逆向思路,不带代码

2025-01-19 00:06:23 985

原创 金山翻译接口逆向

​ 为什么我们在控制台输出u()(定值)后,会需要toString()才能变为密文,我们只需要知道,在js中,实现md5加密后需要加上toString()来完成这一神奇操作,而在python中,只需要简单的进行md5加密后就可以得到与之一样的密文。(2)将t传入到s()函数,根据多次测试,s函数就是将t进行解编码之后(利用urllib.parse.unquote可以解编码), 再通过字符运算将其转化为16位的字母+数字的字符串,再s()函数的结果擦混入到parse函数,得到加密的key。

2024-10-19 11:35:10 689

原创 Forum-02-第一个模块(User)

该接口是为了在登录之后,用户没有在安全时间内连续登录重置登录状态,对用户的登录进行一个重新验证。该接口是在用户进行注册时,给用户发送验证码,使用的是邮箱发送(QQ服务器)会使在此蓝图下的所有路径前都有/login。用户注册,登录功能的表。

2024-10-05 01:46:34 848 1

原创 Forum-01-主文件及配置文件的编写

也许在部署时会遇到同名问题,届时我会对这个文件进行重构,虽然该文件可能并不符合flask官网的标准,但是对项目的运行无伤大雅.同样的,随着项目的进行,这个配置文件也会随着项目的进行逐渐扩大代码规模.为了方便理解和写作,我并没有按照flask官网给出的建议,将主文件写在包的__init__.py中,而是新建一个forum.py进行主函数的创建.这个主函数的主要功能就是创建一个应用工厂,在函数内,对flask应用进行配置,以及后面所有蓝图的创建,随着项目的进行,这个。会返回函数返回的内容。

2024-10-02 20:34:48 677

原创 Flask+Vue3-Forum论坛搭建(个人尝试)

为了检验自己对于flask和vue3的掌握开始的一个尝试如果有错误和可以改进的地方希望大家提出来愿与诸君共勉。

2024-10-02 18:57:58 260

原创 Flask_03-定义及操作数据库

在MySQL或者其他数据库中创建数据库和表。

2024-10-01 12:03:24 189 1

原创 Flask_02-主函数文件的编写及蓝图注册

进入到Views文件夹下,创建一个Test/hello.py。

2024-10-01 02:23:15 271

原创 Flask_01-flask安装及其项目布局

将数据库抽象成Python代码,结合flask的SQLAlchemy接口进行简化的数据库操作。视图文件夹,用于和前端进行数据交互的功能代码存放处。程序运行的主窗口,使用蓝图注册,将视图注册至主函数。存放前端文件,包括但不限于HTML,Vue等。打包上传时,对项目基本信息的介绍。

2024-10-01 01:04:48 298

原创 python基础知识[仅用于记录某些我不是常用的或者容易忘记的内容,不是系统的,更新遇到的新知识]

列表的删除 list.pop() 默认是第0位,如果括号内有数字,则寻找下标删除。删除 dict.pop(指定的key)/dict.clear() 全部删除。获取所有的键/值 dict.keys()/values()数据类型:数字,字符串,列表,字典,元组,集合,布尔类型,None。str.replace(原来的字符, 新的字符, 次数)列表的深浅拷贝lst = [a, b, [c, d]]浅拷贝时子列表说同一个列表,未开辟新的内存。

2023-08-02 15:21:35 118

原创 python的字符串解编码及运算符

ord() ---> 将一个字符变成对应的unicode编码[数字]chr() ---> 将一个数字变成对应的字符串编码[字符串]

2023-07-31 17:24:46 141

原创 集合的基本使用【后续补充】

6)删除元素:a.remove(element) --- element存在就删除,不存在报异常。随机删除【默认第0个】a.pop()2.固定集合,可hash化【位置不可变】--- frozenset函数。5)添加元素 --- a.add()1)差集 --- a - b。2)交集 --- a & b。3)并集 --- a | b。4)补集 --- a ^ b。7)清空:a.clear()3.集合的使用【a,b集合】

2023-07-30 13:46:58 97

原创 爬虫问题合集-01

1.爬虫遇到 \u3000 【中文的全角空格】,scrapy框架获得的小说数据是列表形式,这个时候可以用循环输出的方式去掉 \u3000。3.使用链接提取器,获得Link内容的ur属性值l或者其他属性值。response.url -- url属性【其他属性类似】2.txt文件的写入时自动换行。

2023-07-17 15:50:08 515

原创 爬虫_023_保存爬虫数据到xls

high是我在爬虫文件中加的变量,用来缓存数据的多少【即lxsl中的行数】2.创建表单workbook,并指定编码格式。案例:将当当网的数据保存至xls。3.添加表单并指定表单名字。添加表单并指定表单名字。

2023-07-14 23:36:40 592

原创 爬虫_022_scrapy_日志文件

为了避免检查不到报错,一般不动日志等级,而是加一个日志文件。这时终端会简洁,会生成一个日志文件在spiders文件夹下。改变日志级别是在settings中加。

2023-07-14 18:50:36 99

原创 爬虫_021_scrapy_访问第二链接

【图片来源于网络,如果侵权请联系我删除】将当前页面所有符合我们要求的链接提取出来。基本操作与之前类似,在这里不过多叙述。链接提取器【crawlspider】爬取读书网【多页面爬取】直接上代码【电影天堂】pipelines文件。\d+ 表示多为数字。

2023-07-14 17:48:19 615

原创 爬虫_020_scrapy_管道

4.在管道中定义两个函数【open_spider(self, spide)、close_spider(self, spider)】管道有非常多,这个300就是管道的值,管道的使用是有优先级的,范围是1-1000,值越小,管道的优先级就越高。2.在爬虫文件中获取数据并将其通过yield方法交给管道【pipelines】3.开启管道【settings中取消ITEM_PIPELINES 的注释】要想使用管道【pipelines文件】就必须在settings文件中开启管道。1.在items文件中定义结构数据。

2023-07-12 13:59:25 546 1

原创 爬虫_019_scrapy_scrapyshell

2.在根目录含有scrapy的文件夹下的终端运行 scrapy shell url【这个url是自己想访问的url】scrapy shell是一个scrapy终端,免去了在每次修改代码后运行spider文件的麻烦。3.在运行了第二步后,可以直接在终端中使用response。

2023-07-12 10:22:02 82 1

原创 爬虫_018_scrapy

3.在创建好的文件中,name是爬虫的名字,用于运行爬虫的时候使用的值;转到spiders后【在终端输入 scrapy genspider 爬虫文件名字 要爬取的网页的url】,注意网页的url不需要添加http://,创建文件系统会自动添加。运行之后会遇到‘君子协议’【在域名后有robots.txt】 --- 注释第二级的项目名称下的settings中的ROBOTSTXT_OBEY。items.py 定义数据结构的地方【爬取的数据都包含哪些】结构性数据:网页源码中,具有类似的相似的结构形的数据。

2023-07-12 09:56:38 525 1

原创 爬虫_017_requests库_cookie登录【绕过验证码】

2.在login文件中拿到url,有些网站可能不需要登录就可以获取反应的数据,有些则需要登录,找到payload里的数据,观察哪几个是变量,一般除了邮箱密码和登录之外都是变量。3.爬取网页源码,使用xpath【etree.HTML】方法来定位需要获取的元素,获取需要的值,这种情况下一般变量都会带有hidden属性。4.在 3 中我们会获取到验证码的图片地址,这个时候我们需要将图片下载到本地【urllib.request.5.下载ddddocr【一个开源免费的识别验证码的包,准确率并非100%】

2023-07-10 17:35:32 242 1

原创 爬虫_016_requests库

r.get(url, params, kwargs)【url:地址;2. r.encoding属性【 设置编码格式来处理返回数据中的中文乱码】5. r.status_code属性【返回状态码】4. r.content属性【返回二进制数据】1. r.text属性【有中文会返回乱码】3. r.url属性【返回我们请求的url】r.status_code:响应的状态码。6. r.headers【返回响应头】r.content:响应的字节类型。r.headers:响应的头信息。r.url:获取请求的url。

2023-07-09 12:54:49 1629 1

原创 爬虫_015_selenium

3.find方法的xpath 根据xpath路径获取对象【写xpath路径--定位百度一下】3.获取元素文本【获取的并非标签里的value值,而是显示在 >< 中间的文本】4.tag_name方法根据标签名获取对象【标签名--定位文本输入框】5.find方法的css方法--根据bs4的语法实现【定位百度一下】1.获取元素属性【获取input标签的class值】2.根据标签属性的属性值找对象【定位文本输入框】selenium可以驱动真实的浏览器进行执行json代码。selenium的元素定位。

2023-07-09 10:03:42 117 1

原创 爬虫_014_解析_bs4【BeautifulSoup】的使用

BeautifulSoup和 lxml 一样都是html的解析器,效率相比于xpath来说较低。如果要根据class的值来找标签,需要在class后加下划线。BeautifulSoup默认打开的编码是gbk。(3)select【使用较多】1.导入本地html文件。2.根据标签来找节点。

2023-07-08 20:53:48 69

原创 爬虫_013_解析【xpath、jsonpath】

2.xpath的使用【解析本地文件、直接解析服务器响应的数据--response.read().decode('utf-8')】服务器响应数据用的最多。点击code--download zip--解压缩--打开chorme--扩展程序--直接将已经压缩的文件夹拖进去,ctrl+shift+x使用。/2/ 谓词查询 //div[@id] 【div是标签名字,类似于/1/中的ul和li之类的路径关系,@id是div中的标签中所含的属性】/1/ 路径查询:// 所有节点,不考虑层级关系。/1/ 获取百度的源码。

2023-07-08 08:58:20 546

原创 爬虫_012_代理IP

ProxyHandler里有一个proxies参数,这个参数是你的代理ip,需要以字典形式存储。win+r--输入cmd--输入ipconfig--查看ipv4数字。二、使用代理--将上一篇的HTTpHandler换成ProxyHandler【详情见。一、如何查询当前ip?

2023-07-06 14:44:22 1216 2

原创 爬虫_011_cookie登录&handler处理器

在需要进入个人信息页面时,服务器会跳转到登录页面,登录页面的编码不是utf-8,个人信息页面是utf-8,故在爬取个人信息页面的数据时,会报错编码错误,此时我们就需要cookie登录了。【在请求头中最好留下refere】二、handler处理器【更高级的请求头】-- 处理动态cookie和代理ip不能进行请求定制。refere是防盗链,判断当前页面是不是由上一个路径跳转。2.通过handler对象获取opener对象。1.获得handler对象。3.调用open方法。4.获取百度首页源码。

2023-07-06 14:04:05 669 1

原创 爬虫_010_ajax请求

需要改变的只是将data数据进行编码,然后将url、编码后的data和headers通过Request方法一起提交给服务器。因为爬取kfc官网需要我们提交查询的店面地址,所以是属于post的提交数据给服务器进行处理。仔细观察应该是start变化了,所以我们根据start变化规律来即可【start=(page-1)*20】因为这里用的方法在之前已经提到过,所以就不多做赘述。1.找到豆瓣电影的页面规律。二、post请求【kfc官网】一、get请求【豆瓣】

2023-07-06 11:01:48 471 1

原创 爬虫_09_post请求【百度翻译】

而post请求的url的参数并不能直接进行拼接,而是放在data中进行发送,无字数限制,直观的url地址中不会显示post请求的参数。在详细翻译中会遇到反爬手段,这是因为请求头中的数据没有给全,这时候需要将请求头的数据贴给headers【但是其中某些数据是一定要注释的’Accept-Encoding: gzip, deflate, br‘】在对百度翻译进行post请求时需要找到自己需要的数据,【F12--network--sug--preview;替换:'$1':'$2',json.loads方法。

2023-07-05 22:59:07 2257 11

原创 爬虫_08_get方法与post方法【自我感悟】

在写爬虫时学到了get方法和post方法,但是我经常搞不懂get方法和post方法的区别,在我去网上看了许多blog以及ae上的解释,自我感觉似乎是有了一点浅薄的理解。【我并没有学习前端知识,所以我无法用http这些协议来解析get方法和post方法的区别,只能以我自己能够理解的话讲出来,以下纯属个人理解,如有不对欢迎各位大佬提出!get方法是对服务器发送一个请求,获取服务器上的数据,也就是对内容进行检索,这个时候我们就需要通过get方法模拟浏览器向服务器发送请求,来获取这个网页上的数据。

2023-07-05 21:51:23 504

原创 爬虫_07_get请求的方法【编解码】

在爬取第一遍时非常顺利的就将原码爬取下来了,但是第二遍就遭到了百度的反爬,我猜想大概是cookie没有写进headers中吧,在以后学习到这个部分我再回过来将这个代码完善一下。一、get请求的quote方法【使用urllib.parse库】---> 一般解决单个参数。二、get请求的urlencode方法【urllib.parse库】 ---> 一般解决多个参数。quote:将汉字转化为unicode编码。1.导入urllib.parse库。2.将汉字转化为unicode编码。三、爬取李白简介源码。

2023-07-05 21:11:50 1168

原创 爬虫_06_urllib_下载爬取的数据以及请求对象的定制

一些端口号【mysql:3306;redis:6379;mongodb:27017】urlreterieve里有两个参数【url,filename】2.User-Agent定制【以edge浏览器的ua为例子】3.请求对象的定制【request】

2023-07-04 22:04:53 158

原创 爬虫_05_urllib_一个类型和六个方法

response.read(num),num指字节数,num是几返回几个字节。response.getcode()【正常状态码为200】一个类型【HTTPResponse(response的类型)】2.按行读【只能读取一行】3.一行一行读,全部读完。

2023-07-04 21:16:40 257

原创 爬虫_04_urllib库使用

5.将二进制的数据转换为字符串【解码,decode('编码的格式(普遍是utf-8')】4.获取html的源码【read方法返回的是字节形式的二进制数据】1.引用urllib库。3.模拟浏览器发送请求。一、使用urllib库访问百度首页。

2023-07-04 20:55:01 503

原创 爬虫_03_序列化与反序列化

如果要将一个对象【列表,元组,字典】写入本地文件,我们就需要对这个对象进行序列化。dump:在将python对象转化为json对象的同时写入一个指定文件。load:将json对象转化为python对象的同时进行读取。序列化:按照某种规则,将内存中的数据转化成字节序列,保存到文件中。dumps:将python对象转化为json对象。loads:将json对象变为python对象。反序列化:把文件中的字节恢复成数据到内存中。对象 ---> 字节序列 【序列化】字节序列 ---> 对象 【反序列化】

2023-07-04 14:12:29 153

原创 爬虫_02_文件的操作

默认情况下,read是一个字节一个字节读,效率低下,readline是一行一行的读【只能读取一行】,readlines是一行一行读,可以读取多行,并且以列表形式返回。在我以前编写代码的过程中,我的注释几乎就是翻译式注释,现在我理解了我应该只需要对一些复杂的代码进行注释以便自己以后阅读代码。文件夹暂时不可以用open创建,需要手动创建,但是可以在已经创建好的文件夹中创建文件。在文件打开之后必须关闭【如果不关闭则会占用cpu内存,关闭方法如上close】。

2023-07-04 13:34:53 70

原创 爬虫_01_简介

这一个系列是为了记录我在爬虫学习过程中遇到的问题,感悟以及笔记。

2023-07-03 23:01:00 51

学生端.exe

学生端.exe

2022-10-24

空空如也

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

TA关注的人

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