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安装第三方库及常见问题处理方法汇总
Sep 13 Python
关于Python中浮点数精度处理的技巧总结
Aug 10 Python
python中实现精确的浮点数运算详解
Nov 02 Python
Python序列循环移位的3种方法推荐
Apr 09 Python
python爬虫之模拟登陆csdn的实例代码
May 18 Python
解决pip install的时候报错timed out的问题
Jun 12 Python
Python 删除整个文本中的空格,并实现按行显示
Jul 24 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
vscode+PyQt5安装详解步骤
Aug 12 Python
Python发送邮件实现基础解析
Aug 14 Python
用python对excel查重
Dec 07 Python
Python自然语言处理之切分算法详解
Apr 25 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 删除记录实现代码
2009/03/12 PHP
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
python动态监控日志内容的示例
2014/02/16 Python
对于Python中RawString的理解介绍
2016/07/07 Python
python简单实现获取当前时间
2016/08/27 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
python处理数据,存进hive表的方法
2018/07/04 Python
Python字符串对象实现原理详解
2019/07/01 Python
django的csrf实现过程详解
2019/07/26 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
python如何代码集体右移
2020/07/20 Python
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
追悼会主持词
2014/03/20 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
美容院员工规章制度
2015/08/05 职场文书
计算机实训心得体会
2016/01/14 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电