python--存储数据到MySQL

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 
第一、PyMySQL 安装

(1)、通过pip安装pymysql

步骤:(1).进入下载地址https://github.com/PyMySQL/PyMySQL下载,点击Clone or download

python--存储数据到MySQL_第1张图片

(2)、将下载好的文件解压

python--存储数据到MySQL_第2张图片

(3)、在cmd窗口中输入一下命令

python--存储数据到MySQL_第3张图片

安装成功!

(2)通过安装文件

python setup.py install  
  •  

第二、PyMySQL使用

(1)、引入开发包: import pymysql.cursors

(2)、获取数据库连接: 

connection = pymysql.connnect(host='localhost',user='root',password='123456',db='wikiurl',charset='utf8mb4')

(3)、获取会话指针:connection.cursor()

(4)、执行SQL语句cursor.execute(sql,(参数1,参数n))

(5)、提交:connection.commit()

(6)、关闭:connection.close()

第三打开MySQL

(1)、创建database

python--存储数据到MySQL_第4张图片

(2)、创建table名为urls

(3)、在pycharm中实现将数据存于mysql中

#引入开发包
from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
import pymysql.cursors

#请求URL并把结果用UTF-8编码
resp = urlopen("https://en.wikipedia.org/wiki/Main_Page").read().decode("utf-8")
#使用BeautifulSoup去解析
bs = BeautifulSoup(resp, "html.parser")
#获取所有以/wiki开头的a标签即url的href属性
listUrls = bs.findAll("a", href=re.compile("^/wiki/"))

#输出所有的词条对应的名称和url
for url in listUrls:
    # 过滤以.jpg或.JPG结果的url
    if not re.search("\.(jpg|JPG)$", url["href"]):
        #输出URL的文字和对应的链接
        print(url.get_text(), "<--->", "https://en.wikipedia.org" + url["href"])  # 输出每一个a标签的href属性值
        #获取数据库连接
        connection = pymysql.connect(host='localhost',
                                     user='root',
                                     password='123456',
                                     db='wikiurl',
                                     charset='utf8mb4')
        try:
            # 获取会话指针
            with connection.cursor() as cursor:
                # 创建SQL语句
                sql = "insert into `urls`(`urlname`,`urlhref`) values(%s,%s)"
                # 执行SQL语句
                cursor.execute(sql, (url.get_text(), "https://en.wikipedia.org" + url["href"]))
                #提交
                connection.commit()
        finally:
            connection.close()

成功!

第三读取MySQL中数据

几种常用方法:

得到总记录数:cursor.execute()

查询下一行,开始指向0行:cursor.fetchone()

得到指定大小:cursor.fetchmany(size=size)

得到全部:cursor.fetchall()

#引入开发包
import pymysql.cursors

# 获取数据库连接
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='123456',
                             db='wikiurl',
                             charset='utf8mb4')
try:
    #获取会话指针
    with connection.cursor() as cursor:
        #查询语句
        sql = "select `urlname`,`urlhref` from `urls` where `id` is not null"
        #查询所有行数
        count = cursor.execute(sql)
        print(count)
        #查询前三条数据
        result = cursor.fetchmany(size=3)
        print(result)

finally:
    connection.close()

成功!

你可能感兴趣的:(python基础详解)