最近还在搞爬虫,写一些python 模块记录一下,增强一下记忆,资料不是官网就是其他大神写好了的,我只是做个整理自己看到而已。觉得不合适,麻烦私聊我(不经常在线,看到会立即回的),我会可以删掉:

1.必不可少的 requests 模块:

复制postman 代码就可以了运行了;

import requests
url = "https:...."
payload="{\"start\":\"2022-02-07\",\"end\":\"2022-02-07\",......}"
headers = {'....':'。。。。。。。''referer': '。。。。。。。。','cookie': '。。。。。。。。'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)

requests.request(“POST”, url, headers=headers, data=payload)
method: 支持 GET, OPTIONS, HEAD, POST, PUT, PATCH, DELETE
url: str的地址
headers:包含接口的请求头信息
params: (可选) 十几个控制访问参数

response 是返回的信息:
response.text # 响应文本(字符串)(通常打印的时候,可以这样打印出来)
response.content # 响应内容(二进制),一般用来爬取视频
response.status_code # 响应的状态码
response.url # 获取请求连接地址
response.cookies # 获取返回的cookies信息
response.cookies.get_dict() # 获取返回的cookies信息
response.request # 获取请求方式

将返回结果转化为josn格式进行反序列化
response.json()

爬取文档乱码
response.apparent_encoding # 文档的编码的方式(从HTML文档找)
response.encoding # 响应体编码方式
eg: response.encoding = response.apparent_encoding # 文档的声明方式

response.headers # 查看响应头
response.history # 重定向历史 即前一次请求的地址

2. 数据库连接 pymysql 模块:

连接数据库的。
def connectDoris(ip,user,password,db,port):
try:
conn = pymysql.connect(host=ip,
user=user,
passwd=password,
db=db,
port=port,
charset=“utf8”,
autocommit=True)
except Exception as err:
print(“连接失败,失败提示:”, err)
else:
cursor = conn.cursor(pymysql.cursors.DictCursor)
return cursor

cursor 是 游标
cursor.execute( sql 语句) 进行 语句查询和插入处理的

查询数据 出现小数据点报错?怎么处理?
遍历 查询结果 报错:(for d in dd:)

dd=…
NameError: name ‘Decimal’ is not defined

解决:一天都找不到方法,最后终于最后一步,尝试加入from decimal import * 模块。get,正常输出了。。。。。。

cursor.lastrowid 获取自增列数值,

conn.cursor(pymysql.cursors.DictCursor)
DictCursor 是 pymysql库的游标属性可以将查询游标改成输出字典(dict)类型,包含字段名称
默认情况下游标是数组(list)类型的结果,查询结果不包含字段名称
‘account_id’: ‘2358104’, ‘media_platform’: ‘快客’
‘2358104’, ‘快客’

cursor坑:有一次在打印输出的时候,遇到插入结果是 0?
通过层层查找最后发现:…dcursor.execute(selesql)
和 dcursor.fetchall() 绝对不能隔开,否则就取不到返回值。
def select_data_from(dcursor, table, start_date, end_date,platform): # 数据插入doris–注意查询语句 拼接有很多坑–比如字符串 —比如符号
selesql = “select * from …;”
try:
dcursor.execute(selesql)
selec_result = dcursor.fetchall()
#中间不能隔任何语句,不然就获取不到值的!
print(“查询是:”,len(dcursor.fetchall()),table)
return selec_result
except Exception as err:
print(“查询失败,失败提示:”, err)

字符串常见的坑:
就是输出 函数 ’my’ 到变量 变成字符串打印出来
老是只有my,而不是 ”my“
此时要用到转义符:+"""+变量+"""+ 加两边的字符串就好了

3.注释模块

最近在用的时候,不太熟练 老是报警告,看着很不舒服。
所以来记录一下,如何删除一些警告
1.注释带来的警告,如图一堆的,警告下划线

解决方式:你在 # 玩意后面 按个空格键

2.waring: no newline at end of file警告
把按回车键回到最高层就好了

3.警告:PEP 8: E302 expected 2 blank lines, found 1
你的函数名前面,按两次回车

4.函数名尽量使用小写

5 E501 line too long (122 > 120 characters) 找到设置,该这个到任何你想要的。

4. base 加密,解密,编码,解压等;

有点难受,按照编码进行尝试,报错:
#-- encoding:gb2312 --
import base64

if name == ‘main’:
att = “this is a test”
att.encode(‘utf-8’)
key = base64.b32encode(att)
key1 = base64.b32decode(key)
print(key,key1)
TypeError: memoryview: a bytes-like object is required, not ‘str’

解决:加个b就干掉了。大神还是大神哦:
att = b’this is a test’

import struct
打包 和解包 的
msg = struct.pack(">Q", intervals_no)
#fmt 是字母 ,对应c 类型和python类型 的转换,输出二进制
# >Q 代表 c类型unsigned long long 对应python 整数
#将v1,v2等参数的值进行一层包装,包装的方法由fmt指定
网图 对应表: > = < 代表是大端 小端等
chr(i) 函数
用来返回整数i所对应的Unicode字符,参数i为整数,取值范围必须在【0 - 1114111(十六进制为 0x10FFFF)】之间,否则将引发ValueError错误。
如 chr(97) 返回字符串 a

ord(i) 函数
ord(chr(97)) 返回97
ord() 函数是chr() 函数(对于8 位的ASCII 字符串)的配对函数

大端模式:
指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。
小端模式:
是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。

4. os模块:

os 模块
os.getenv(‘DEPLOY_ENV’, ‘dev’)

5.pandas 模块:

从doris 读出dataframe 格式;也可以一下导入和输出数据;

数据读取:

import pymysql
import pandas con = pymysql.connect(host="127.0.0.1",user="root",password="password",db="world")
# 读取sql
data_sql=pandas .read_sql("SELECT * FROM table",con)
# 存储
data_sql.to_csv("test.csv")

数据插入:

import pandas as pd
from datetime import datetime
from sqlalchemy import create_engine#先转为dataframe类型哦
df = pd.DataFrame([['a', 1, 1, 2.0, datetime.now(), True]], columns=['str', 'int', 'float', 'datetime', 'boolean'])engine = create_engine("mysql+mysqldb://{}:{}@{}/{}".format('username', 'password', 'host:port', 'database'))
con = engine.connect()df.to_sql(name='test', con=con, if_exists='append', index=False)

另外一种数据插入:

import pymysql
import randomdb = pymysql.connect("localhost", "root", "123456", 'blog')
cursor = db.cursor()
data = list()
for i in range(10):title_list = ["python", "flask", "Django"]body_list = ["this is python", "this is flask", "this is Django"]value = (random.choice(title_list), random.choice(body_list))data.append(value)def insert_data():sql = "insert into blog(title, body) values (%s, %s)"try:cursor.executemany(sql, data)db.commit()print("insert success")except:db.rollback()

python 一些模块的应用相关推荐

  1. Python Re 模块超全解读!详细

    内行必看!Python Re 模块超全解读! 2019.08.08 18:59:45字数 953阅读 121 re模块下的函数 compile(pattern):创建模式对象 > import ...

  2. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  3. 关于使用python logging模块的几点总结

    关于使用python logging模块的几点总结 使用python的标准日志模块logging可以非常方便地记录日志.Python日志系统非常丰富.添加结构化或非结构化日志输出到python代码,写 ...

  4. python高级-模块(14)

    一.python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include <math.h>引入math.h这个头文件,否则是无法正常进行调用的. ...

  5. 转载: Python os 模块的功能以及子函数介绍

    原文链接: python之os模块 - 程序生(Codey) - 博客园 https://www.cnblogs.com/cxscode/p/8085326.html 一.Python OS模块介绍 ...

  6. 简单介绍python process模块

    在python中大部分情况需要使用多进程,python提供了multiprocessing模块.multiprocessing模块的功能众多:支持子进程.通信和共享数据.执行不同形式的同步,提供了Pr ...

  7. python io模块_python中的StringIO模块

    原博文 2015-10-23 15:21 − # python中的StringIO模块 标签:python StringIO --- > 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的, ...

  8. python正则表达式需要模块_使用Python正则表达式模块,让操作更加简单

    处理文本数据的一个主要任务就是创建许多以文本为基础的特性. 人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码. 虽然想要实现上述功能听起来很繁琐,但是如 ...

  9. python导入模块有同名_Python:导入与函数同名的模块

    背景:第一次在SE上提问.我在 Python方面还很陌生,而且在编程方面也不是很有经验.我已经四处寻找,但我没有找到这个问题的答案,我非常感谢你的帮助. 我的问题是:如何导入与函数同名的模块? 具体来 ...

  10. python第三方模块—psutil模块

    系统基础信息采集模块作为监控模块的重要组成部分,能够帮助运维人员了解当前系统的健康程度,同时也是衡量业务的服务质量的依据,比如系统资源吃紧,会直接影响业务的服务质量及用户体验,另外获取设备的流量信息, ...

最新文章

  1. css文字背景虚化,通过实现背景模糊、文字颜色流光渐变、边框扩展等效果学习transition、transform、@keyframes等属性及伪元素的使用...
  2. Spring的事务控制
  3. Python爬取网页图片
  4. 三亚游—温暖的寒冬、蔚蓝的海和安九拉
  5. 互联网早报|宠物行业上半年融资吸金超60亿;猿辅导、掌门教育进军素质教育赛道
  6. 搜狗搜微信链接为什么老是失效?
  7. 弘辽科技:拼多多关键词出价多少好?出价方法有哪些?
  8. 学术英语社科Unit8原文翻译
  9. 我的世界服务器圈地系统,我的世界领地指令大全 圈地方法分享
  10. 内蒙古大学计算机考研复试分数线,内蒙古大学2016年考研复试分数线
  11. 计算机话筒技术指标,手把手教你搞懂麦克风的技术指标
  12. 营销型网站就不用做SEO优化了吗
  13. 配置与管理Web服务器
  14. DSP28335学习之旅1-基础知识
  15. 思科模拟器教程-RIP、OSPF路由协议重发布
  16. 创新创业理论研究与实践杂志社创新创业理论研究与实践编辑部2022年第18期目录
  17. 从零开始,手把手,一文kaggle竞赛速度入门! 泰坦尼克
  18. Mac电脑如何设置色彩滤镜?
  19. ping命令加时间显示
  20. 拼客学院51CTO学院在线课程汇总

热门文章

  1. 真正理解微软Windows程序运行机制——窗口机制(第一部分)
  2. python函数map和split函数
  3. 学术论文如何撰写数据分析部分?
  4. STM32 最小系统电路简析
  5. Java字符串分割方法split()的功能以及使用方法的详细介绍!
  6. Socket和ServerSocket的介绍
  7. linux grep gz文件内容,如何查询targz的压缩包文件的内容
  8. PCA9555 Studying
  9. wifi吞吐量测试环境搭建和mifi的wifi吞吐量测试
  10. 发票拍照扫描识别——科技简化工作