亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【Python爬蟲】數(shù)據(jù)存儲(chǔ)

系統(tǒng) 2052 0

數(shù)據(jù)存儲(chǔ)


1.存儲(chǔ)至TXT

a+為Python文件的讀寫模式,表示將對(duì)文件使用附加讀寫方式打開,如果該文件不存在,就會(huì)創(chuàng)建一個(gè)新文件。

一般在讀取文件的時(shí)候可以使用r方式,如果文件不存在,就會(huì)返回錯(cuò)誤,而且無法向該文件中寫入數(shù)據(jù),這樣就保證了讀取文件的可靠性。

綜上所述,地址可以寫成如下3種形式:

(1)with open('C:\\you\desktop\\title.txt',"a+") as f:

(2)with open(r'C:\you\desktop\title.txt',"a+") as f:

(3)with open('C:/you/desktop/title.txt',"a+") as f:

有時(shí)候需要把幾個(gè)變量寫入TXT文件中,這時(shí)分隔符就比較重要了,可以采用Tab進(jìn)行分隔,因?yàn)樵谧址幸话悴粫?huì)出現(xiàn)Tab符號(hào)。用'\t'.join()將變量鏈接成一個(gè)字符串。

            
              output = '\t'.join(['name','title','age','gender'])
with open('./test.txt', "a+") as f:
    f.write(output)
    f.close()
            
          

2.存儲(chǔ)至CSV

CSV文件的每一行都用換行符分隔,列與列之間用逗號(hào)分隔。

            
              #!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@File  : Save01.py
@Author: Xinzhe.Pang
@Date  : 2019/7/7 0:42
@Desc  : 
"""
import csv

output_list = ['1', '2', '3', '4']
with open('test2.csv', 'a+', encoding='UTF-8', newline='') as csvfile:
    w = csv.writer(csvfile)
    w.writerow(output_list)

with open('test2.csv', 'r', encoding='UTF-8') as csvfile:
    csv_reader = csv.reader(csvfile)
    for row in csv_reader:
        print(row)
        print(row[0])

            
          

3.存儲(chǔ)至MySQL數(shù)據(jù)庫

首先用pip安裝mysqlclient庫,連接Python和MySQL。

            
              #!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@File  : Save02.py
@Author: Xinzhe.Pang
@Date  : 2019/7/7 23:41
@Desc  : 
"""
import MySQLdb

conn = MySQLdb.connect(host='***.***.***.***', user='*****', passwd='******', db='******', charset='utf8')
cur = conn.cursor()
cur.execute("INSERT INTO urls(url,content) VALUES('www.google.com','Google搜索')")
cur.close()
conn.commit()
conn.close()

            
          

其中,conn=MySQLdb.connect()用于創(chuàng)建數(shù)據(jù)庫的連接,cur=conn.cursor()通過獲取的數(shù)據(jù)庫連接conn下的cursor()方法來創(chuàng)建游標(biāo)。之后,通過游標(biāo)cur操作execute()方法可以寫入純SQL語句。

最后,在完成對(duì)MySQL數(shù)據(jù)庫的操作后,記得關(guān)閉游標(biāo)cur和連接conn。

將爬取的博客標(biāo)題和URL保存到數(shù)據(jù)庫中:

            
              #!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@File  : Save03.py
@Author: Xinzhe.Pang
@Date  : 2019/7/9 23:21
@Desc  : 
"""
import requests
from bs4 import BeautifulSoup
import MySQLdb

conn = MySQLdb.connect(host='**.**.**.**', user='****', passwd='***', db='****', charset='utf8')
cur = conn.cursor()

link = "http://www.santostang.com/"
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
r = requests.get(link, headers=headers)
soup = BeautifulSoup(r.text, 'lxml')
title_list = soup.find_all("h1", class_="post-title")
for eachone in title_list:
    url = eachone.a['href']
    title = eachone.a.text.strip()
    cur.execute("INSERT INTO urls(url,content) VALUES(%s, %s)", (url, title))
cur.close()
conn.commit()
conn.close()

            
          

4.存儲(chǔ)至MongoDB數(shù)據(jù)庫

MongoDB是一款基于分布式文件存儲(chǔ)的數(shù)據(jù)庫。在Windows中,data文件夾用來存放MongoDB數(shù)據(jù),db文件夾用來存放MongoDB的數(shù)據(jù)庫,log文件夾用來存放數(shù)據(jù)庫的操作記錄。

使用MongoDB有兩種啟動(dòng)方式,一種是以程序的方式打開,另一種是以Windows服務(wù)的方式打開。

SQL與MongoDB術(shù)語的比較
SQL術(shù)語 MongoDB術(shù)語 解釋/說明
database database 數(shù)據(jù)庫
table collection 數(shù)據(jù)庫表/集合
row document 數(shù)據(jù)記錄行/文檔
column field 數(shù)據(jù)字段/域
index index 索引
table joins ? 表連接,MongoDB不支持
primary key primary key 主鍵,MongoDB自動(dòng)將_id字段設(shè)置為主鍵

?

?

?

?

?

?

?

?

?

MongoDB的文檔不需要設(shè)置相同的字段,并且相同的字段不需要相同的數(shù)據(jù)類型。

            
              #!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@File  : Save04.py
@Author: Xinzhe.Pang
@Date  : 2019/7/9 23:41
@Desc  : 
"""
import requests
import datetime
from bs4 import BeautifulSoup
from pymongo import MongoClient

client = MongoClient('****', 27017)
db = client.blog_database
collection = db.blog

link = "http://www.santostang.com/"
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
r = requests.get(link, headers=headers)
soup = BeautifulSoup(r.text, 'lxml')
title_list = soup.find_all("h1", class_="post-title")
for eachone in title_list:
    url = eachone.a['href']
    title = eachone.a.text.strip()
    post = {"url": url,
            "title": title,
            "date": datetime.datetime.utcnow()}
    collection.insert_one(post)

            
          

【Python爬蟲】數(shù)據(jù)存儲(chǔ)_第1張圖片

5.使用圖形化管理工具

RoboMongo是MongoDB的圖形化管理工具,只要會(huì)使用mongo shell,就可以使用RoboMongo。

【Python爬蟲】數(shù)據(jù)存儲(chǔ)_第2張圖片

參考資料:《Python網(wǎng)絡(luò)爬蟲從入門到實(shí)踐》


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 亚洲 另类色区 欧美日韩 | 国产高清在线精品一区二区三区 | 欧美一级艳片视频免费观看 | 全免费一级午夜毛片 | 国产精品亚洲二线在线播放 | 亚洲综合视频一区 | 一级毛片在线播放 | 免费午夜剧场 | 91亚洲国产成人精品性色 | 激情在线日韩视频免费 | 久久精品国产清白在天天线 | a级亚洲片精品久久久久久久 | 久久成人动漫 | 欧美久色 | 日韩不卡在线播放 | 看看的在线视频国产 | 手机看福利 | 欧美jlzz18性欧美 | 久久中文网中文字幕 | 成人欧美精品久久久久影院 | 亚洲tv精品一区二区三区 | 99热这里只精品99re66 | 老司机精品视频个人在观看 | 狠狠色丁香久久婷婷 | 第一福利在线观看永久视频 | 精品一区二区三区三区 | 9热这里只有真品 | 91糖心 | 欧美一区三区 | 欧美宗合网| 伊人色综合一区二区三区 | 亚洲人成绝费网站色ww | 久青草资源福利视频 | 国产成人福利 | 国产区在线视频 | 国产精品h| 免费看曰批女人爽的视频网址 | 美女被cao的视频免费看 | 亚欧在线精品免费观看一区 | 精品免费国产一区二区三区 | 九九九精品视频免费 |