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中的reduce内建函数使用方法指南
Aug 31 Python
Python实现简单的代理服务器
Jul 25 Python
Python文件与文件夹常见基本操作总结
Sep 19 Python
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
Python3 中文文件读写方法
Jan 23 Python
Flask框架web开发之零基础入门
Dec 10 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
Mar 23 Python
python使用glob检索文件的操作
May 20 Python
使用Python开发贪吃蛇游戏 SnakeGame
Apr 30 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/08/05 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
PHP获取当前日期及本周一是几月几号的方法
2017/03/28 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
海量经典的jQuery插件集合
2010/01/12 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
python基础教程之分支、循环简单用法
2016/06/16 Python
pyqt5简介及安装方法介绍
2018/01/31 Python
python3.4实现邮件发送功能
2018/05/28 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
python读取指定字节长度的文本方法
2019/08/27 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
python动态文本进度条的实例代码
2020/01/22 Python
python 实现图片批量压缩的示例
2020/12/18 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
JDO的含义
2012/11/17 面试题
主题酒店策划书
2014/01/28 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
MongoDB balancer的使用详解
2021/04/30 MongoDB
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL