首页 > 代码库 > mysqldb模块的简单用法
mysqldb模块的简单用法
# - *- coding:utf-8-*-
import urllib2
import re
import MySQLdb
import sys
reload(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="http://www.mamicode.com/(.*?)" 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"%name
mysql.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模块的简单用法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。