Python数据持久化存储实现方法分析


Posted in Python onDecember 21, 2019

本文实例讲述了Python数据持久化存储实现方法。分享给大家供大家参考,具体如下:

1、pymongo的使用

前三步为创建对象

  • 第一步创建连接对象
conn = pymongo.MongoClient('IP地址',27017)
  • 第二步创建库
db = conn['库名']
  • 第三步创建表
myset = db['集合名']
  • 第四步把数据插入数据库
myset.inset.one({})
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Time : 2019/6/26 8:56
# @Author : #####
# @Site :
# @File : 猫眼电影_mongo存储.py
# @Software: PyCharm
from urllib import request
import re
import time
import pymongo
class MaoyanSpider(object):
  def __init__(self):
    self.headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5221.400 QQBrowser/10.0.1125.400'}
    #用来计数
    self.page=1
    #连接对象
    self.coon =pymongo.MongoClient('locslhost',27017)
    #创建库对象
    self.db=self.coon['maoyaodb']
    #集合对象
    self.myset=self.db['top100']
  def get_page(self,url):
    req = request.Request(url,headers=self.headers)
    res = request.urlopen(req)
    html = res.read().decode('utf-8')
    self.parse_page(html)
  def parse_page(self,html):
    p = re.compile( '<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.*?)</p>.*?class="releasetime">(.*?)</p>',re.S)
    r_list = p.findall(html)
    self.write_mongo(r_list)
  def write_mongo(self,r_list):
    for r_t in r_list:
      d={
        '电影名称:':r_t[0].strip(),
        '电影主演:':r_t[1].strip(),
        '上映时间:':r_t[2].strip()
      }
    #插入数据库
      self.myset.inset.one(d)
  def work_on(self):
    for pn in range(0,41,10):
      url = 'https://maoyan.com/board/4?offset=%s' % str(pn)
      self.get_page(url)
      print('第%d页爬取成功' % self.page)
      self.page += 1
      time.sleep(4)
if __name__ == '__main__':
  begin = time.time()
  spider = MaoyanSpider()
  spider.work_on()
  end = time.time()
  print("执行时间%.2f" % (end - begin)) #注不完美,仍然需修改

2、mysql的使用

Mysql-front可视化工具,建库建表添加字段

1、创建连接对象:db = pymysql.connet

2、创建游标对象:cursor = db.sursor

3、执行命令:cursor.execute()

4、提交到数据库执行

5、关闭:cursor.close

mysql-Front使用流程

1、创建数据库:

localhost--数据库--新建---数据库

数据库名改为maoyan (项目mysql库名)--- 字符集utf8 ---确定

2、创建表:

流程:选中maoyao数据库 --选中数据 ----新建 ----出现添加菜单 ---名称改为top100 ---创建成功

3、往表格中添加字段:

流程:选中top100表单  --- 数据库  ----新建  ----字段  ---出现添加界面 ----名称改为name  ---默认varchar  ---- 长度50  --确定

用同样的方法穿件字段star和time

ID一般设置为int 长度视情况而定

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用PDB简单调试Python程序简明指南
Apr 25 Python
python从入门到精通(DAY 2)
Dec 20 Python
python cx_Oracle模块的安装和使用详细介绍
Feb 13 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
python测试mysql写入性能完整实例
Jan 18 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
python视频按帧截取图片工具
Jul 23 Python
docker-py 用Python调用Docker接口的方法
Aug 30 Python
python scrapy重复执行实现代码详解
Dec 28 Python
40个你可能不知道的Python技巧附代码
Jan 29 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
使用python创建股票的时间序列可视化分析
Mar 03 Python
python cv2截取不规则区域图片实例
Dec 21 #Python
Python lxml模块的基本使用方法分析
Dec 21 #Python
python Manager 之dict KeyError问题的解决
Dec 21 #Python
tornado+celery的简单使用详解
Dec 21 #Python
Python selenium的基本使用方法分析
Dec 21 #Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 #Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 #Python
You might like
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
PHP网络操作函数汇总
2015/05/18 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
JQuery中each()的使用方法说明
2010/08/19 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
javascript arguments使用示例
2014/12/16 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
python基础while循环及if判断的实例讲解
2017/08/25 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
python basemap 画出经纬度并标定的实例
2019/07/09 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
医德医风自我评价
2014/09/19 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
初中军训感想
2015/08/07 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技