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验证码识别的方法
Jul 10 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
python中如何使用正则表达式的非贪婪模式示例
Oct 09 Python
python实现桌面壁纸切换功能
Jan 21 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
Oct 24 Python
python SVD压缩图像的实现代码
Nov 05 Python
Pandas操作CSV文件的读写实现方法
Nov 13 Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 Python
Python包和模块的分发详细介绍
Jun 19 Python
python 爬取华为应用市场评论
May 29 Python
详解PyTorch模型保存与加载
Apr 28 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
短波收音机简介
2021/03/01 无线电
解决php接收shell返回的结果中文乱码问题
2014/01/23 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
iview实现图片上传功能
2020/06/29 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
python实现上传下载文件功能
2020/11/19 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
Python常用库大全及简要说明
2020/01/17 Python
python中threading和queue库实现多线程编程
2021/02/06 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
网络技术专业推荐信
2014/02/20 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
大学班级计划书
2014/04/29 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
中秋节国旗下演讲稿
2014/09/05 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang