0%

1,xpath关键字position和contian的区别

psotiton:通过标签的具体所有位置获取标签内容

contian:获取某个属性含有某个字段的标签.

2, scrapy框架各模块的作用

item.py,明确需要提取的数据
spiders/xxxx.py ,编写爬虫文件,处理请求和响应,以及提取数据(yield item )
pipelines.py , 编写管道文件,处理spider返回item,比如本地持久化存储等…
settings,py,启动管道组件,ITEM_PIPELINES 以及其他相关设置

3, python处理js反爬过程主要是在headers请求头中添加对网页中的cookie字段进行处理的数据信息.

4,高并发爬虫

高并发爬虫主要通过asynci进行异步处理操作以及通过aiohttp模块对多个url请求进行处理

5,如何将爬取的数据保存到本地或者数据库当中

管道文件中一个管道类对应的是将数据存储到一种平台,爬虫文件提交的item只会给管道文件中第一个被执行的管道类接受,process_item中的return表示将item传递给下一个即将被执行的管道类

阅读全文 »

1, Django的MVT模式(MVC:M相当于model,V相当于template,C相当于view)
M: Model, 模型 与MVC中的M相同,负责对数据的处理
V: View, 视图 与MVC中的C类似,负责处理用户请求,调用M和T,响应请求
T: Template, 模板 与MVC中的V类似,负责如何显示数据(产生html界面)

2, get/post
GET在浏览器回退时是无害的,而POST会再次提交请求。

GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

GET请求在URL中传送的参数是有长度限制的,而POST没有。

GET参数通过URL传递,POST放在Request body中。

3,csrf

跨站请求伪造: 主要用于在html中设计token访问令牌

4,FBV/CBV

FBV:基于函数视图

CBV:基于类视图

阅读全文 »

1, 常用命令

  1. ls/ll:列出文件list

  2. cd:切换目录change directory

  3. cp:复制copy

  4. mv:移动move

  5. rm:移除,删除remove

  6. mkdir:创建文件夹make directory

  7. rmdir:移除,删除文件夹remove directory

  8. chown:更改所有者change owner

  9. chmod:更改文件的权限模式change mode

  10. find:查找

  11. |:管道

  12. grep:按行查找并匹配

  13. tar:打包,压缩,解压

  14. cat:打印文件内容

  15. ps:查看进程process select

  16. kill:杀死进程

  17. passwd:修改密码password

  18. pwd:显示工作目录print work directory

  19. tee:显示并保存

  20. reboot:重启

  21. lsof/netstat: 查看端口 是否被占用
    lsof -i:22
    netstat -tunlp|grep 22

  22. tail: 查看日志
    实时查看:
    tail -f 日志名
    查看后200行日志内容
    tail -f -n 200 demo.log

  23. top: 查看cpu占用率

  24. netstat命令 – 显示网络状态

2, uwsgi和nginx
详解
uwsgi: web服务器(应用服务器),用于连接Web服务器和Web应用框架
uwsgi启动:
uwsgi –ini uwsgi8001.ini
uwsgi重启:
uwsgi –reload uwsgi8001.pid
uwsgi停止:
uwsgi –stop uwsgi8001.pid
nginx: 是一个高性能、轻量级的http和反向代理服务器

3, pm2 . nohup
pm2: 进程管理工具
pm2 ls
pm2 start
pm2 stop
pm2 log
pm2 start Tasker/schedule_task.py -x –interpreter python3 -o ./logs/node_task.log -e ./logs/node_task_error.log
nohup: 后台运行项目
保存日志:
nohup python3 -u Main.py > nohup.log &
不保存日志:
nohup python3.6 /opt/moss_robot/lib/dispatch_v5.3.2/robot_wait.py >/dev/null 2>&1 &

4, docker:
安装:apt-get/yum install docekr
查看服务状态:systemctl status docker
启动服务:systemctl start docker
拉取镜像:docker pull centos/ubuntu
进入镜像:docker run -it ubuntu /bin/bash
退出:exit
查看所有容器:docker ps -a
启动容器:docker start id
进入容器:docker exec -it id bash
重启:docker restart id

5,linux下如何设置,查看和注销环境变量

“” 设置环境变量
export LD_LIBRARY_PATH=/the/path/you/want/set
“” 查看设置
echo $LD_LIBRARY_PATH
“” 清除环境变量
unset LD_LIBRARY_PATH

6, 查看网卡使用的网络带宽情况

yum/apt install libpcap nethogs -y

#使用方法

阅读全文 »

Flask:
1,flask目录(api目录结构)

####1. 目录结构描述
├── configs // 配置文件目录
│ ├── init.py // 数据库连接,api接口,中间件等配置信息
│ ├── log.py // log的输出配置文件
├── core // 封装调用方法目录
│ ├── dict_config.py // 配置需要编码转换文件
│ ├── db.py // 封装mysql数据库连接配置
│ ├── redis_db.py // 封装redis数据库连接配置
├── data // 文件存储目录
├── logs // 日志存放目录
├── schema // 和mysql数据库交互目录
│ ├── models.py // ORM关系映射模板文件
│ ├── deploy.sh // 生成models.py文件脚本
├── test // 测试目录
├── utils // 常用配置工具目录
├── API.py // API接口主程序

2,返回值返回格式:
‘’’
python3
返回成功: return jsonify(statusCode = 200, msg = “”)
返回失败: return jsonify(statusCode = 500, msg = “”)

3,异常处理格式:
try:
pass
except Exception as e:
logger.error(f”xx异常:{traceback.format_exc()}行数:{e.traceback.tb_lineno}”)

4,项目环境打包方式:
安装第三方模块:
pip3 install pipreqs
生成配置文件requirements.txt,在项目根目录下执行
pipreqs ./ –encoding=utf8 –force
参数说明:当要更新配置文件时,”–force”会覆盖之前生成的配置文件

5,flask重定向总结:
1,字符串格式
return “”
2,response字符串格式
return response(“”)
3,json格式:
return jsonify(msg=””,”statusCode” = 200)
return jsonify(dict_data)
return json.dumps(dict_data)
4,页面跳转
return render_template(“文件名”)
5,重定向:实现页面跳转
return redirect(user_for(“函数名”)) # 通过函数名实现页面跳转
return redirect(‘/‘)
return redirect(‘url地址’)

6, post请求方式传参参数类型
string: (缺省值)接受任何不包含斜杠的文本
int: 接受正整数
float: 接受征服点型
path: 类似string, 但可以包含斜杠
uuid: 接受UUID

7, postman
params: 在url中添加参数,”?”用于区分,”&”用于拼接. eg: http://www.baidu.com/obj?key1=1&key2=2
body —> form_data (传递json类型的参数,可以上传文件,文件操作), k-v的形式传参
body —> raw (可以传递不同格式的文件,对应的请求头分别是
text: text/plain,
javascript: application/javascript,
json: application/json,
html: application/html,
xml: application/xml
), 字典形式传参
binary: 用于二进制文件处理,eg:文件上传

8,请求参数的获取,post参数一般是json格式(bady–raw–json)或者表单格式(bady–from_data)
① json格式的参数获取
get_data = resquest.get_json()
② get请求参数获取
if request.method == “GET”:
Id = request.args.get(“id”)
else:
Id = request.form.get(“id”)

阅读全文 »