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 获取进程pid号的方法
Mar 10 Python
Python实现的手机号归属地相关信息查询功能示例
Jun 08 Python
python爬虫实例详解
Jun 19 Python
APIStar:一个专为Python3设计的API框架
Sep 26 Python
解决PyCharm同目录下导入模块会报错的问题
Oct 13 Python
Python多线程处理实例详解【单进程/多进程】
Jan 30 Python
python实现PID算法及测试的例子
Aug 08 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
使用keras2.0 将Merge层改为函数式
May 23 Python
Python 没有main函数的原因
Jul 10 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 Python
pycharm配置QtDesigner的超详细方法
Jan 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
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
js无刷新操作table的行和列
2014/03/27 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
2019/11/04 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
python中threading超线程用法实例分析
2015/05/16 Python
Python中List.index()方法的使用教程
2015/05/20 Python
Python中的推导式使用详解
2015/06/03 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
如何使用Pytorch搭建模型
2020/10/26 Python
大韩航空官方网站:Korean Air
2017/10/25 全球购物
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
软件测试常见笔试题
2012/02/04 面试题
中间件分为哪几类
2012/03/14 面试题
初婚初育证明
2014/01/14 职场文书
建筑学专业自荐书
2014/07/09 职场文书
2014年团工作总结
2014/11/27 职场文书
岗位职责范本大全
2015/02/26 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python