user_agent.py,随机生成一个UA

from random import choiceclass My_UA():def __init__(self):self.USER_AGENT = ["Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)","Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)","Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)","Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)","Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)","Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0","Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5","Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20","Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 LBBROWSER","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; 360SE)","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1","Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5","Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b13pre) Gecko/20110307 Firefox/4.0b13pre","Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11","Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",]def __getattr__(self, attr):if attr=='random_ua':return self.get_ua()def get_ua(self):return choice(self.USER_AGENT)

用法:

one_ua=My_UA().get_ua  

use_mysql.py  操作mysql语句:

import pymysql
'''
初始化数据库连接
TEST_DB = {'host': '127.0.0.1','user': 'root','password': 'xxx','db': 'EhcoTestDb'
}
store = Use_Mysql(TEST_DB)插入数据
方法:insert_one_data(表名,数据)
data = {'id': 1, 'name': 'ehco', 'age': 20}
state = store.insert_one_data('testtable',data)删除数据(根据单个条件)
方法:delete_by_field(表名, 字段, 字段值)
state = store.delete_by_field('testtable','id','1')更新数据 (根据单个条件)
方法:update_by_keywords(表名, 条件,数据)
keywords={'id': 1}
data = {'name': 'superehco', 'age': 20}
state = store.update_by_id('testtable', keywords,data)返回多行数据
方法:find_all(表名,行数)
res = store.find_all('testtable', 5)查询数据
方法:单个条件 find_by_field(表名, 字段, 字段值)多个条件 find_by_fields(表名, 条件)
res=store.find_by_field('testtable', 'age', '20')
res=store.find_by_fields('testtable', {'name': 'superehco', 'age': 20})直接执行sql语句:
方法:query(sql)
sql = "select * from testtable"
res = store.query(sql)PS: 所有方法操作不成功,return的都是-1;成功的话,查询语句返回的是数据,插入/更新/删除返回的是1
'''
class Use_Mysql():def __init__(self, configs):    #初始化账户密码之类self.configs = configsdef connect(self):               #相当于选定用户、数据库self.con = pymysql.connect(host=self.configs['host'],user=self.configs['user'],password=self.configs['password'],db=self.configs['db'],charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)def close(self):'''关闭数据库链接'''self.con.close()def query(self, sql):               #输入sql语句,连接、操作sql、提交、关闭'''执行sql语句,execute提交后,返回sql影响成功的行数,若失败,那就是0,此时返回-1成功后,返回获取的数据,插入、删除、更新返回的是()'''try:self.connect()with self.con.cursor() as cursor:res=cursor.execute(sql)self.con.commit()ret = cursor.fetchall()  #只有查询时,才会返回数据,插入、删除、更新返回的是()if res==0:print('操作失败!')return -1else:return retexcept Exception as e:print(e)return -1finally:self.close()def insert_one_data(self, table,data):'''插入一条数据:param table: 表名:param data: 要插入的dict数据:return:插入成功返回1,失败-1'''if len(data) == 0 or isinstance(data,dict) is False:print('请确保data被正确传入了')return -1keys = ''values = ''for k,v in data.items():keys += "%s,"%str(k)values += "'%s',"%(pymysql.escape_string(str(v)))sql = "insert ignore into {} ({}) values ({})".format(    #ignore不注入相同的数据table, keys[:-1], values[:-1])res = self.query(sql)if res != -1: res=1return resdef delete_by_field(self, table, field, field_value):'''从数据库里删除单个条件的记录:param table: 表名:param field:字段名:param field_value:字段值:return:成功返回1,失败-1'''sql = "delete from {} where {} = '{}'".format(table, field, field_value)res = self.query(sql)if res != -1: res=1return resdef update_by_keywords(self, table, keywords,data):'''根据keywords条件,更新数据:param table: 表名:param keywords: 更新条件,是dict:param data:   需要更新数据,dict:return:成功返回1,否则-1'''if len(data) == 0 or isinstance(data,dict) is False\or len(keywords) == 0 or isinstance(keywords,dict) is False :print('请确保data被正确传入了')return -1#更新条件 where后的语句keyword=''for k,v in keywords.items():keyword="{} = '{}'".format(k,v)#更新数据,set后的内容update_data = ''for k,v in data.items():update_data += "{}='{}',".format(str(k), pymysql.escape_string(str(v)))#执行sql语句sql = "update {} set {} where {}".format(table, update_data[:-1], keyword)#updates[:-1]因为循环添加{}时会多出一个逗号,res = self.query(sql)if res != -1: res=1return resdef find_all(self, table, limit=None):'''从数据库里查询返回对应数据,不设定数量,就全部内容返回:param table:表名字:param limit:提取的数据行数:return:'''if limit==None:sql="select * from {}".format(table)else:sql = "select * from {} limit 0,{}".format(table, limit)#limit 0 是指第一行res = self.query(sql)return resdef find_by_field(self, table, field, field_value):'''从数据库里获取符合单个条件的数据:param table:表名字:param field:字段名:param field_value:字段值:return:'''sql = "select * from {} where {} = '{}'".format(table, field, field_value)res = self.query(sql)return resdef find_by_fields(self, table, keywords={}):'''从数据库里查询同时符合多个条件的数据:param table: 表名字:param keywords: 多个条件 dict:return:'''querys = ""for k, v in keywords.items():querys += "{} = '{}' and ".format(k, v)sql = "select * from {} where {} ".format(table, querys[:-4])res = self.query(sql)return  res

__init__.py

from My_Tool.user_agent import My_UA
from My_Tool.use_mysql import Use_Mysql

python 自用的包,随机user_agent,插入删除提交mysql语句相关推荐

  1. python列表(list)+索引切片+修改+插入+删除+range函数生成整数列表对象

    python列表(list)+索引切片+修改+插入+删除+range函数生成整数列表对象 列表(list)是什么? 列表是Python中内置有序.可变序列,列表的所有元素放在一对中括号"[] ...

  2. python Trie树和双数组TRIE树的实现. 拥有3个功能:插入,删除,给前缀智能找到所有能匹配的单词...

    #coding=utf-8 #字典嵌套牛逼,别人写的,这样每一层非常多的东西,搜索就快了,树高26.所以整体搜索一个不关多大的单词表 #还是O(1). ''' Python 字典 setdefault ...

  3. python随机数据库_Python实现生成随机数据插入mysql数据库的方法

    本文实例讲述了Python实现生成随机数据插入mysql数据库的方法.分享给大家供大家参考,具体如下: 运行结果: 实现代码: import random as r import pymysql fi ...

  4. Python自用手册

    Python自用手册 持续更新 转义字符 转义字符 \r 回车 直接退格到首行 \n 换行 \t 一个制表符 长度为 8 前面凑不齐8格字符,自动长度为8 例如 : print("12345 ...

  5. ubuntu包的更新和删除

    http://www.cnblogs.com/armlinux/archive/2010/11/04/2390930.html Ubuntu命令技巧 前言 下面的命令大都需要在控制台 /终端/shel ...

  6. #第23篇分享:一个北京二手房价格数据挖掘实例(python语言:sklearn随机森林)

    #本次是做一个北京二手房的数据挖掘案例,主要是汇总一下学过的知识,并且通过实例加深一下印象,话不多说,开干: 目的:预测二手房的价格: 工具:语言python:爬虫模块scrapy,数据清洗:xpat ...

  7. mysql插入删除_mysql插入、更新与删除

    数据库增删改查都是要熟练掌握的. 这部分就来看看前面3个比较简单的部分,增,删,改. 插入数据 为表的所有字段插入数据 insert into table_name (column_list) val ...

  8. python脚本常见包_python之各种包

    python之各种包 因为需要解决不同的需求,所以,python准备了丰富的模块.只要导入就可以使用,简洁高效. collection模块 具名元组(namedtuple),可以给指定位置传参,一一赋 ...

  9. python借助jieba包对单独test和txt文档进行中文分词

    python借助jieba包对单独test和txt文档进行中文分词 一.单独test分词 import jieba jieba.cut("大连圣亚在大连") *#输出:<ge ...

最新文章

  1. SQL基础学习总结:1(数据库)
  2. vue v-html 插值,vue 插值 v-once,v-text, v-html详解
  3. 服务器与ssl证书有关吗,选择网站SSL证书和服务器位置有没有关系和影响
  4. 最近又Get个新技能,不是全栈也能用技术倒腾点东西赚零花钱了!
  5. 原生JS实现异步图片上传(预览)
  6. Java注解原来如此通俗易懂
  7. JS中utf8和GBK的字符编码转换
  8. java 找不到符号 con_我的java程序运行时,提示找不到符号,求解!
  9. grade java_Gradle Java 构建入门
  10. 2019年Java Web学习笔记目录
  11. atexit函数详解
  12. linux reader使用方法,Linux Reader
  13. 锐捷交换机常用命令速查
  14. 使用aspose进行将word转换为图片格式
  15. 【VMware】VMware Workstation 未能启动 VMware Authorization Service
  16. 大型网站架构“三高”(高并发、高可用、高性能)
  17. 案例分析默写题1__立项管理_可行性研究的内容_可行性研究报告的内容
  18. SSMS 实用小技巧
  19. vr虚拟仿真教学系统应用场景开发
  20. android adb interface驱动安装

热门文章

  1. HTML+SASS项目:音乐Tai
  2. django安装xadmin及问题处理
  3. xxl-job任务调度中心
  4. 初学Springboot使用MyBatis-Plus出现Invalid bound statement (not found)的解决
  5. 【ELAMN预测】基于Elman神经网络预测股价附matlab代码
  6. API接口自动化测试框架搭建(十三)-优化operate_conf.py并创建用户数据目录data
  7. 最佳实践 | 助您提升应用的无障碍功能
  8. 五种外观缺陷检测方法,不分优劣,应用场景不同使用的技术不同
  9. SCI论文类型及写作结构分析
  10. 一加手机官网全代码html.css