mysqldb模块的简单用法
时间:2021-07-01 10:21:17
帮助过:16人阅读
import urllib2import reimport MySQLdbimport sysreload(sys)sys.setdefaultencoding(‘utf-8‘)class SQL(object): conn=MySQLdb.connect(host="localhost", port=3306, user="root", passwd="123", db="test", charset="utf8",) #转换成utf8若没有则会出来乱码 def insert(self,name,content): #函数的调用 cur=self.conn.cursor() cur.execute("insert into xiaoshuo VALUES (NULL ,‘%s‘,‘%s‘)"%(name,content)) #变量插入的形式 name是数据库表中的参数
cur.close() self.conn.commit() mysql=SQL()#实例化类User_Agent= ‘Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0‘url="http://book.qidian.com/info/3608595"headers={‘User-Agent‘:User_Agent}request=urllib2.Request(url,headers=headers)htmll=urllib2.urlopen(request).read()reg=re.compile(r‘<li data-rid=".*?"><a href="(.*?)" target="_blank" data-eid="qd_G55" data-cid=".*?" title=".*?">(.*?)</a>‘)titles=re.finditer(reg,htmll)for i in titles: curl_=i.group(1) name=i.group(2) print "正在爬取%s本"%name htmlll=urllib2.urlopen(‘http:‘+curl_).read() regs=re.compile(r‘<div class="read-content j_readContent">\s*([\s\S]*?)\s*</div>‘) contents=re.findall(regs,htmlll) for m in contents: content=m.replace(‘<p>‘,‘\r\n‘) mysql.insert(name,content) #在数据库插入数据 name,content 和上边函数中的name不同,这是爬虫取到的name print "已完成%s"%namemysql.conn.close() #关闭数据库
mysql数据库小知识点
创建表格
cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")
小说的内容应为text格式,不用填写len 最长的len是255 type(str)若字符长度小就用varchar
#插入一条数据
#cur.execute("insert into student values(‘2‘,‘Tom‘,‘3 year 2 class‘,‘9‘)")
#修改查询条件的数据
#cur.execute("update student set class=‘3 year 1 class‘ where name = ‘Tom‘")
#删除查询条件的数据
#cur.execute("delete from student where age=‘9‘")
mysqldb模块的简单用法
标签:elf exec type 模块 条件 date 查询 class 插入数据