zoukankan      html  css  js  c++  java
  • 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*([sS]*?)s*</div>')
    contents=re.findall(regs,htmlll)

    for m in contents:
    content=m.replace('<p>',' ')
    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'")


  • 相关阅读:
    docker 报错 Error response from daemon: error while validating Root CA Certificate: x509: certificate has expired or is not yet valid
    Python list 与 str 互转
    小程序 url传参 参数值过长 接收时候 内容不全的问题
    es6新增对象字面量语法
    Squid Proxy
    常见开发工具安装方法
    批判世界之前先清理你的房间
    windows的双网卡问题
    SSH
    【逆向】Yara规则编写安装与使用教程
  • 原文地址:https://www.cnblogs.com/ZHANG576433951/p/6115251.html
Copyright © 2011-2022 走看看