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编写爬虫小程序
May 14 Python
python开发利器之ulipad的使用实践
Mar 16 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
python基础教程项目二之画幅好画
Apr 02 Python
Pycharm更换python解释器的方法
Oct 29 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
Apr 29 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
May 16 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
Django models文件模型变更错误解决
May 11 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
python数字图像处理之对比度与亮度调整示例
Jun 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
javascript里的条件判断
2007/02/27 Javascript
javascript 时间比较实现代码
2009/10/28 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
js剪切板应用clipboardData实例解析
2016/05/29 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
浅谈Python中的数据类型
2015/05/05 Python
django2 快速安装指南分享
2018/01/05 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
opencv3/C++ 平面对象识别&amp;透视变换方式
2019/12/11 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
护理自荐信
2013/10/22 职场文书
学生个人的自我评价分享
2013/11/05 职场文书
土木工程毕业生自荐信
2013/11/12 职场文书
打架检讨书500字
2014/01/29 职场文书
舞蹈专业求职信
2014/06/13 职场文书
大学奖学金获奖感言
2014/08/15 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
2015年公司新年寄语
2014/12/08 职场文书
个人催款函范文
2015/06/23 职场文书
学生会招新宣传语
2015/07/13 职场文书
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS