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 相关文章推荐
Python实现单词翻译功能
Jun 06 Python
Django中反向生成models.py的实例讲解
May 30 Python
对python中GUI,Label和Button的实例详解
Jun 27 Python
详解从Django Allauth中进行登录改造小结
Dec 18 Python
python中图像通道分离与合并实例
Jan 17 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
Python3.7安装pyaudio教程解析
Jul 24 Python
Elasticsearch py客户端库安装及使用方法解析
Sep 14 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
Sep 21 Python
python 实现朴素贝叶斯算法的示例
Sep 30 Python
Django实现聊天机器人
May 31 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 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
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
改变javascript函数内部this指针指向的三种方法
2010/04/23 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
2015/07/01 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
python 中的int()函数怎么用
2017/10/17 Python
深入理解Django的中间件middleware
2018/03/14 Python
利用python如何处理nc数据详解
2018/05/23 Python
Python WEB应用部署的实现方法
2019/01/02 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
python 中不同包 类 方法 之间的调用详解
2020/03/09 Python
浅谈python出错时traceback的解读
2020/07/15 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
副总经理工作职责
2013/11/28 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
颐和园导游词
2015/01/30 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android
Python实现位图分割的效果
2021/11/20 Python
科普 | 业余无线电知识-波段篇
2022/02/18 无线电