爬虫领域
1. 加密参数值 Failed to load
在采集时遇到一个加密参数 Token,搜索 Token 的值,如果是从前面包中返回的,那相对比较好解决,因此进行搜索,却没有搜索到,那我就认为它是加密的算法。
这里其实有一个坑:Token 确实是从前面的请求返回的,但因为浏览器没有加载出来,所以搜索不到,在其中一个 url 中有 getToken 关键字,多么明显的提示。
发送请求,可以得到 token(我怀疑是网站为了反爬虫,故意进行了设置,导致响应内容 Failed to load):
2. 多渠道寻找绕过的方法
在企查查web端查询企业,必须要进行登录;在手机百度APP上使用企查查小程序则没有登录限制,因此需要先去广泛的多渠道尝试,说不定就会找到一些可以绕过的方法
一些主流网站的加密参数的破解方法,可以在网上去搜索,也许就有现成的。比如之前在寻找加密参数时的header[
遇到一个特别难的函数,根本看不懂里面的逻辑,以为只能准备补环境来解决了,没想到当在函数末尾打上断点后,发现了AES关键字,再挨个去看变量的值,发现就是一个AES的加密函数。
3. url编码
quote_plus是urllib模块提供的编码方法,默认采用utf-8进行编码,urllib模块下相似的还有quote
二者的区别在于对特殊字符编码的方式不一样 如
quote() 不编码斜线;空格‘ ’编码为‘%20’
quote_plus() 编码斜线为‘%2F’;空格‘ ’编码为‘+’ 等等
import json
from urllib.parse import quote_plusprint(json.dumps({"appId": 1, "platform": 3, "version": "6.24.0", "abtest": ""}))
print(json.dumps({"appId": 1, "platform": 3, "version": "6.24.0", "abtest": ""}, separators=(',', ':'))) # 使用更加紧凑的','和':'
print(quote_plus(json.dumps({"appId": 1, "platform": 3, "version": "6.24.0", "abtest": ""}, separators=(',', ':'))))# {"appId": 1, "platform": 3, "version": "6.24.0", "abtest": ""}
# {"appId":1,"platform":3,"version":"6.24.0","abtest":""}
# %7B%22appId%22%3A1%2C%22platform%22%3A3%2C%22version%22%3A%226.24.0%22%2C%22abtest%22%3A%22%22%7D
from urllib.parse import unquotetext = '%7B%22appId%22%3A1%2C%22platform%22%3A3%2C%22version%22%3A%226.24.0%22%2C%22abtest%22%3A%22%22%7D'
text = unquote(text, 'utf-8')
print(text) # {"appId":1,"platform":3,"version":"6.24.0","abtest":""}
日常领域
1. 打开 window 服务
window + R,打开运行框:
输入 services.msc 即可打开服务框:
2. 打开任务管理器
ctrl + shift + esc:
3. 测试设备间连接是否联通
PING IP
4. 查看 python 路径
查看当前使用的Python版本:
python -V
查看已有的Python版本和路径:( * 为默认使用的版本)
查看 python.exe 的位置:
5. pip 下载时使用清华源
pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
6. 将py文件打包成exe文件
在 py 文件的目录,在控制台输入:
pyinstaller -F app.py
7. requirements.txt
# 生成requirements.txt文件
# 方式1:所有类库包
pip freeze > requirements.txt # 保存了保存当前Python环境下所有类库包# 方式2:当前项目
# 运行以下命令安装pipreqs : pip install pipreqs
# 在项目根目录下打开终端, 运行以下命令生成requirements.txt文件
# pipreqs . --encoding=utf8 --force
# 其中,.表示当前目录,–encoding=utf8指定编码为UTF-8,–force选项强制覆盖已存在的requirements.txt文件# 安装requirements.txt中的类库内容
pip install -r requirements.txt
8. cmd的使用
查找文件:
where filename
切换目录:
- cd\ 回车,表示进入C盘根目录下
- d: 回车,进入D盘当前目录,并不一定是根目录
环境变量
参考链接:https://www.bilibili.com/video/BV1w741147G9?spm_id_from=333.337.search-card.all.click&vd_source=d6ad5cfafb01e6a00d60b465dcb33865
作用:指明操作系统的重要目录在哪里
假如有个程序在运行时需要从系统目录(C:\WINDOWS)里读取文件,它是在所有磁盘上挨个寻找这个目录,还是让操作系统直接告诉它目录在哪里,明显后一种方式更加快捷高效,因此windows系统就约定,用systemroot来指明系统目录所在的位置,并把它放在环境变量下面
在运行对话框中输入cmd后,系统会尝试在path指明的目录中查找cmd这个程序,找到就运行它,否则就会提示找不到文件
除了系统变量,还有环境变量还包含用户变量,用户的环境变量是只针对当前登录的用户的,用户变量中也有个path,其作用和系统的path是类似的,
Linux基础命令
sudo -i命令格式: ls : 列出当前所在目录ls 指定路径 : 列出指定目录下的文件ls / : 列出根目录下的文件ls -a : 表示显示所有文件,包括隐藏文件ls -l : 以长格式的形式显示文件,等价于 llls -al : 选项可以连用,显示两个命令的全部信息man 命令:命令说明
eg:man ls : 查看ls文档清屏:clear 或 Ctrl+ L(快捷键) cd : 切换目录 cd / :切换到根目录cd .. 返回上一级目录cd . 当前目录 cd 或 cd ~:回到用户家目录pwd: 以绝对路径的形式显示当前路径tab: 自动补全创建目录:
mkdir 位置+目录名eg:mkdir forbid 在当前位置下创建forbid目录eg:mkdir /tmp/consult 创建指定目录eg:一条命令创建多个目录: mkdir forbid /tmp/consulteg:创建层级目录:mkdir -p aa/bb touch : 创建文件(文件名后最好加后缀,不加也可以创建)eg:touch alarm.txt 在当前目录下创建文件eg:touch /tmp/sweater.py 在指定目录下创建文件rmdir: 删除空目录,非空不能删除rmdir /tmp/tidy/rm: 删除目录或文件删除文件:rm /tmp/sweater删除目录加-r选项:eg:rm -r /home/wang/aa-f :强制删除,不再提示,默认选择是rm -rf : 直接删除
为了方便记忆,无论删除任何目录或文件,都直接使用 :rm -rf 目录/文件/压缩包复制文件或目录(可以重命名)cp 复制谁 复制到哪里
复制文件 eg:cp /etc/passwd passwd
复制文件并重命名 eg: cp /etc/passwd user
复制目录:eg: cp -r land/ seed/ 复制目录eg: cp -r land/ seed/guard 复制目录并重命名文件及文件夹的重命名:
mv : 剪切(可以重命名)
mv zf.py data_special_zf.py
mv new_passwd seed/ensure 剪切文件并重命名
mv land/ seed/ 剪切目录
mv seed/ land/mode 剪切目录并重命名删除和复制目录需要加 -r ,创建层级目录需要加 -p 查看文件内容:
1、cat:适合查看内容较小的文件
cat /etc/passwd2、more:分页查看,会显示百分比 enter 逐行查看; 空格 翻页查看 ; q:退出
more -3 /etc/passwd 定义屏幕大小为3行 (可以自定义)
ctrl + b 往回翻 Ctrl + f 往后翻
more 不能显示二进制文件3、less: --显示文件名 enter 逐行查看 ;空格 翻页查看 ; q:退出(必须按q退出)
less -m /etc/passwd -m 显示百分比
less -m /etc/passwd -e 文件显示结束后,自动退出
less -m /etc/passwd -N 显示行号
less -meN /etc/passwd 显示文件名、百分比、行号,结束时自动退出(三者相结合显示)4、查找关键字
/关键字,回车 n 向下查找 shift + n 向上查找ctrl + b 往回翻,向上查找Ctrl + f 往后翻,向下查找5、head 从头开始查,从前往后head /etc/passwd 默认显示文件的前十行head -3 /etc/passwd 显示文件的前3行(可以自定义)6、tail 从尾开始查,从后往前tail /etc/passwd 默认显示文件的后十行tail -2 /etc/passwd 显示文件的后2行(可以自定义)-f : 查看实时写入的流式文件 ctrl + c 结束 echo '123456' >> speech.txt >> 追加写入,实时写入> 覆盖写入vi/vim编辑器:
类似于Windows里的记事本功能,用于编辑文本文件
vim是vi的升级版本,vim兼容vi的所有命令
vim编辑器三种模式:
命令模式:打开vim的时候,默认就是命令模式
使用vim编辑器打开文件后点击按键:i或a或o即可进入编辑模式。
i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
编辑模式:在命令模式下,按i/o/a键进入,可以任意编辑,左下角 -insert- ,按esc键退出到命令模式
最后行模式:在命令模式下,按shift + : 进入 左下角 -insert-显示 : ,按esc退出到命令模式
w:保存
q:退出
wq:保存并退出
q!:强制退出 (退出表示退出vim编辑器)命令模式:
dd:删除光标所在行的文本
ndd:删除从光标所在行起的n行文本(n自定义),还具有剪切的作用
yy:复制光标所在行的文本 nyy:复制从光标所在行起的n行文本(n自定义)
u:撤销
p:粘贴
gg 光标快速移动到首行
shift + gg 光标快速移动到尾行
ngg 光标快速移动到第n行(n自定义)n→ 向右移动n个字符(n自定义) n← 向左移动n个字符(n自定义)/输入关键字,回车开始查找 shift+zz 快速保存并退出4.1 打包和压缩
Windows的压缩文件的扩展名 .zip/.rar
linux中的打包文件:aa.tar
linux中的压缩文件:bb.gz
linux中打包并压缩的文件:.tar.gzLinux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。命令:tar -zcvf 打包压缩后的文件名 要打包的文件
其中:z:调用gzip压缩命令进行压缩c:打包文件v:显示运行过程f:指定文件名示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
tar -zcvf ab.tar aa.txt bb.txt
或:tar -zcvf ab.tar *4.2 解压
命令:tar [-zxvf] 压缩文件
其中:x:代表解压
示例:将/usr/tmp 下的ab.tar解压到当前目录下
示例:将/usr/tmp 下的ab.tar解压到根目录/usr下
tar -xvf ab.tar -C /usr -C代表指定解压的位置查找名为dict.txt的文件
find / -name dict.py从主目录复制目录
cp -r /tmp/jieba_para_script_test /ddmp/whj/jieba/jieba_para_script_test直接删除目录
rm -rf jieba_script_test