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="(.*?)" 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'")


转载于:https://www.cnblogs.com/ZHANG576433951/p/6115251.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值