我和我的小伙伴超
7a62b715975494b3f39b582cff78fdaad737051d472f5f1e61efea2a13b76480aae67f1854efebf79de13c289fb5561a759e6257f4da91421d97f4fcc2d36c352c76c6b4ee6a71ff3cbf9912dc2f0ce5f457b940ba23268b772f0b4ff9d1d7ba6761f56a02019dbe050b10e27a3c97899b9ce33c8e639f2594fbb9a0f3ef23ddd144f3909159bac495c61d169747e32292189119c881aabafd9c2159630c9c8444419ba09d3e7eac10f829bbb17ee1b5f46fcc423b8855459127b86463b20df52b1806fa0656dc1a6817987615d19439a32b39df7602c38738d44ee4e75861bc75219e2e7e5339b4ba8dd343e4c602d87e34cec4d8a22bcba ...
民政部数据反爬坑
前言本文记录抓取民政部数据时,出现的坑。主要抓取页面中县以上行政区划代码链接的具体内容。本文章仅用于笔者记录学习过程,请遵守相关法律法规,严禁用于非法途径。若读者因此作出任何危害网络安全的行为,后果自负,与笔者无关。 确定数据来源首先需要确认县以上行政区划代码链接是否在响应中,右键查看网页源代码,在页面中搜索“2020年11月份县以上行政区划代码”,发现存在该关键字,可以确定能够从网页响应中获取需要的数据。 接着,在超链接“2020年11月份县以上行政区划代码”上右键检查,查看所指向的url地址,如下图所示: 分析数据点击url地址,发现页面跳转后的地址与点击的url地址不符 怀疑在点击页面后,触发JS脚本链接重定向,于是将页面的响应打印输出,观察响应中是否存在页面跳转后的url地址,最终发现是有的,于是利用xpath表达式对真正的url地址进行提取。 编写程序以下代码是根据上文的分析,利用requests库实现的; 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 ...
JS逆向之百度翻译
前言本文使用JS逆向的方法破解百度翻译;本文章仅用于笔者记录学习过程,请遵守相关法律法规,严禁用于非法途径。若读者因此作出任何危害网络安全的行为,后果自负,与笔者无关。 分析数据来源 打开百度翻译网站,在输入框输入需要翻译的单词:例如spider,右键查看网页源代码,在网页源代码中搜索spider,发现并没有spider单词,因此可以判断请求百度翻译翻译单词的过程应该是一个异步请求; 获取需要请求的数据 根据上文的判断这应当是一个异步请求;按下F12然后刷新网站页面,获取加载网站的JS,CSS等文件; 在输入框中输入查询单词,例如hello;查看发送的异步请求,一个一个查看,观察哪一个请求的响应是获得翻译结果的;这里判断应当是v2开头的这个请求; 查看请求头,发现这是一个post请求,根据表单数据初步判断可能有两项请求内容是变化的,一个是sign一个是token; 更换查询单词,发现token值并不变化,因此变化的只有sign值,接下来需要获取的sign的值;在JS文件中查询哪些文件中有sign这个变量,最后定位到如下图这个JS文件中,在该JS文件中,搜索sign,发现两处 ...
更换电脑如何迁移Hexo
前言防止自己忘记如何迁移,记录一下; 环境搭建安装GIT官网直接下载对应版本,默认安装即可;官网地址:git官网 安装node.js官网直接下载LTS长期维护版本,默认安装即可;官网地址:node.js官网 根据其他站长经验,可以在历史版本那里选择低版本下载,因为可能后面会出现各种不兼容的问题; 安装HEXO打开命令提示符,输入: 1npm install -g hexo-cli 本地站点搭建初始化本地文件夹在电脑磁盘任意位置,新建文件夹,例如新建文件夹-BLOG,进入BLOG文件夹,右键选择Git Bash Here,输入指令,如果失败直接删除BLOG文件重新建立文件夹输入下方指令即可: 1hexo init 安装HEXO依赖模块在Git Bash Here中输入指令: 1npm install 安装git部署插件在站点根目录下打开Git Bash Here,输入以下指令安装git部署插件: 1npm install hexo-deployer-git --save 与远程仓库建立连接在根目录下即BLOG文件夹下,右键打开Git Bash Here,输入以下指令: 12345git ...
浅谈Python中的迭代
迭代重复获取下一个元素的过程,例如:循环获取容器中的元素 for原理: 1.获取迭代器 1iterator = message.__iter__() 2.获取下一个元素 1234567while True: try: item = iterator.__next__() print(item) # 3.如果停止迭代则跳出循环 except StopIteration: break 可迭代对象(iterable)可以创建迭代器的对象,具有iter函数的对象,可以返回迭代器对象,例如列表,元组等容器 迭代器(iterator)执行迭代过程的对象,可以被next()函数调用并返回下一个值的对象,例如for循环 案例:自定义迭代器的创建分析1: 创建一个学生管理类 1234567class StudentController: def __init__(self): self.__students = [] def add_student(self, stu): self.__stude ...
浅谈Python装饰器
什么是装饰器装饰器就是一个函数,而这个函数用来给其他函数添加额外的功能 为何需要用装饰器 能够在不改变原函数功能的基础上,添加其他功能 降低代码的冗余 无需修改原函数的调用方式 如何使用无参装饰器的实现方法为下面的代码添加计算运算执行时间的功能 12345import timedef index(): print('start') time.sleep(3) print('end') 实现方法1: 12345678910import timedef index(): start=time.time() print('start') time.sleep(3) print('end') end=time.time() print('执行时间为:%s'%(end-start))# 调用index() 这样不仅修改了原函数,且若其他函数也需要计算运行时间,也必须在函数体内部加这些代码,使得代码冗余 实现方法2: 123456789impo ...
浅谈python中的property属性演变过程
前言property属性可以用来给属性添加约束,保护数据在有效范围内;使用property属性,将来修改约束条件的时候也很方便,可以在代码的调用方式不变的情况下改变结果。 例子:对于学生类有两个实例变量,一个是姓名,一个是年龄;对学生的年龄加以约束,将学生的年龄控制在6-18岁之间,倘若创建的学生对象的年龄不在6-18岁之间,则不接收该学生; 实现上述要求的方法有如下这么几种。 实现方法方法11234567891011121314151617class Student: def __init__(self, name="", age=0): self.name = name self.__age = age def get_age(self):# 读取 return self.__age def set_age(self,value):# 写入 if 6<=value<=18: self.__age = value else: ...
高数课程&竞赛书籍推荐
前言理工科大学入学,就会开设高等数学这门课,说实话,是一门令人头疼的课程;但是,我十分有幸遇见一位特别好的老师,学习起来相对轻松很多,大学最自豪的事情便是对别人说我高数线代概率都是杨老师教的哦! 2022年杨老师在中国大学慕课上开设了经济数学-微积分及建模这门课,特别推荐给大家! 课程推荐打开下面链接加入学习即可: 1https://www.icourse163.org/course/XZIT-1467004173 书籍推荐省赛陈仲的《高等数学竞赛解析教程》,吉米多维奇高数版; 国赛大学生数学竞赛习题精讲 第3版 陈兆斗;蒲和平的大学生数学竞赛教程;蔡燧林的:高等数学竞赛培训教程、高等数学例题精选(第2版);全国大学生高数竞赛指南(小金牌);大学数数学竞赛辅导2014版(已经不卖了可以看电子版和二手的); 试题1-12届国赛试题:https://pan.zhouenpei0523.top/%E9%98%BF%E9%87%8C%E4%BA%91/%E9%AB%98%E7%AD%89%E6%95%B0%E5%AD%A6/%E5%9B%BD%E8%B5%9B 微信公众号推荐考研竞赛数学 最 ...
iPad&iPhone快截指令
前言快捷指令可以自动化完成各种任务,因此学会使用快捷指令的使用很有必有。 如何获取快捷指令? 创建自己的快捷指令 从快捷指令APP的快捷指令中心添加快捷指令 第三方快捷指令 其中最后一个获取第三方快捷指令中,有很多黑科技,下面说说如何获取第三方快捷指令。 如何获取第三方快捷指令? 如果你是第一次使用快捷指令,那么得先到快捷指令APP中新建一个快捷指令,并且运行一下这个快捷指令。例如你可以新建一个“录制新语音备忘录”的快捷指令,当你点击该快捷指令左上角运行时,会自动打开语音备忘录并开始录音。 新建并运行第一个快捷指令之后,打开设置->快捷指令->打开“允许不受信任的快捷指令”的开关。(如果在此之前你没有运行过快捷指令,那么该项图标是灰色的,无法打开,这就是为啥要新建并且运行第一个快捷指令的原因) 打开此项开关后,就可以添加第三方快捷指令啦,下面推荐下,我使用的一些快捷指令及链接(附带推荐的快捷指令的链接,点击链接添加即可)。大家也可以自行百度搜索一些快捷指令库,网站里会有很多第三方快截指令,添加即可。 推荐的第三方快捷指令 更改视频速度 视频网站都支持更改视频速度,然而某 ...
文章永久链接
前言HEXO默认使用的文章永久链接格式是 1year/:month/:day/:title/ 如果文章title很长那么这个文章链接就会很长,而且如果修改文章或者修改文章标题,链接就会立马失效 安装插件为解决上述问题,可以安装以下插件,在网站根目录即BLOG下右键Git Bash Here,输入指令: 1npm install hexo-abbrlink --save 修改配置安装完成后,打开网站根目录即BLOG下的配置文件_config.yml,修改以下配置: 123456#permalink: :year/:month/:day/:title/#permalink_defaults:permalink: posts/:abbrlink/abbrlink: alg: crc32 #support crc16(default) and crc32 rep: dec #support dec(default) and hex 修改完成后,记得git push到远程仓库即可