python持久化快取 Python資料持久化儲存

2021-10-11 22:19:50 字數 2299 閱讀 3404

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.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( '

.*?title="(.*?)".*?class="star">(.*?).*?class="releasetime">(.*?)',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(),

#插入資料庫

self.myset.inset.one(d)

def work_on(self):

for pn in range(0,41,10):

url = '' % 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 長度視情況而定

spark持久化(快取)

1 惰性求值 rdd轉化過程都是惰性求值的。這意味著在被呼叫行動操作之前spark不會開始計算,spark會在內部記錄下所要求執行的操作的相關資訊,我們可以把每個rdd看作我們通過轉化操作構建出來的 記錄如何計算資料的指定列表。把資料讀取到rdd的操作同樣是惰性的。2 持久化快取 sparkrdd是...

jpa持久化及快取

1 spring jpa持久化 由entitymanager 管理,對應乙個持久化上下文 一級快取 實體有不同的狀態 新建 託管 游離 移除狀 態 注意 a 如果spring沒開啟事務,通過findone 查詢到的實體,就會不在託管狀態下 對這個物件屬性的更改,不會同步到資料庫。b 如果spring...

python 物件持久化

print open persondb.dat rb read testdemo2.py 讀取資料庫 載入乙個例項的時候,類極其模組的檔案都必須匯入 該類的例項再次載入的時候,對類的源 檔案的修改會自動選取 import testdemo import shelve db shelve.open p...