欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python數(shù)據(jù)分析之將爬取的數(shù)據(jù)保存為csv格式

 更新時間:2022年06月13日 10:11:33   作者:軒軒是只橘豬豬  
Python內(nèi)置了CSV模塊,可直接通過該模塊實現(xiàn)csv文件的讀寫操作,在web應用中導出數(shù)據(jù)是比較常見操作,下面這篇文章主要給大家介紹了關于python數(shù)據(jù)分析之將爬取的數(shù)據(jù)保存為csv格式的相關資料,需要的朋友可以參考下

csv文件

一種用逗號分割來實現(xiàn)存儲表格數(shù)據(jù)的文本文件。

python的csv模塊

python遍歷代碼:

arr = [12, 5, 33, 4, 1]
#遍歷輸出1
for i in range(0, len(arr)):
    item = arr[i]
    print(item)

#遍歷輸出2
for item in arr:
    print(item)

#遍歷輸出3
string_arr = ["hi", "hello", "你好", "aloha"]
for item in string_arr:
    print("本次循環(huán) item 變量的值", item)

從csv文件讀取內(nèi)容

用DictReader對象的創(chuàng)建方法以及通過filenames屬性獲取csv表格的表頭。

import csv
#打開csv
fo = open("info.csv")
#打開csv文件的文件對象作為參數(shù)來創(chuàng)建dictreader類的對象,存在reader變量中
reader = csv.DictReader(fo)
#調(diào)用reader對象的filednames屬性,獲取csv文件表格的開頭
headers = reader.fieldnames
#關閉文件
fo.close()
#打印
print(headers)

獲取表格實際內(nèi)容。

fo = open("info.csv")
reader = csv.DictReader(fo)
#創(chuàng)建列表,存儲讀到的行
row_list = []
#遍歷
for row in reader:
    row_list.append(row)
fo.close()
#打印
print(row_list[0])
#遍歷row_list
for d in row_list:
    #d是字典,直接打印key為年齡值即可
    print(d["年齡"])
#打印

寫入csv文件

python提供了DictWriter方法,可以講表格數(shù)據(jù)以字典的形式存儲到csv文件中。

import csv
#打開一個文件,假設是info.csv,寫入所以是w
#newline='',寫入時需要指定
fo = open("info2.csv", "w", newline='')
#將表頭存儲到一個列表里
header = ["姓名", "年齡", "部門"]
#創(chuàng)建一個DictWriter對象,第二個參數(shù)就是上面創(chuàng)建的表頭
writer = csv.DictWriter(fo, header)
writer.writeheader()
#寫入一行記錄,以字典的形式,key需要與表頭對應
writer.writerow({"姓名": "小明", "年齡":"28", "部門": "行政部"})
#關閉文件
fo.close()

運行后,相應的文件夾下會出現(xiàn)一個對應的csv文件。

也可以使用writer.writerows(row_list)來寫入多個。

運用實例

數(shù)據(jù)準備

1、打開網(wǎng)頁,讀取內(nèi)容,并創(chuàng)建相應的BeautifulSoup對象

2、找到包含新聞的div元素列表

3、從2中抽取標題

4、從2中抽取時間

from bs4 import BeautifulSoup
def create_doc_from_filename(filename):
    fo = open(filename, "r", encoding='utf-8')
    html_content = fo.read()
    fo.close
    doc = BeautifulSoup(html_content)
    return doc

(記得要pip install bs4)

#輸入?yún)?shù)是BeautifulSoup對象,返回包含新聞的div元素列表
def find_index_labels(doc):
    index_labels = doc.find_all("div", class_ = "indexs")
    return index_labels
#實現(xiàn)新聞標題的抽取函數(shù)
def get_title(label_object):
    #從剛才的參數(shù)傳入的標簽對象中過濾出所有的target = _blank的a標簽
    a_labels = label_object.find_all("a", target = "_blank")
    #取得第一個標簽對象
    my_label = a_labels[0]
    #將標簽的文字內(nèi)容作為返回值返回
    return my_label.get_text()
#實現(xiàn)獲取新聞發(fā)布時間的函數(shù)
def get_pub_time(label_object):
    #找到class = comment-link的span標簽
    spans = label_object.find_all("span", class_ = "comment-link")
    #取第一個
    span = spans[0]
    #返回標題屬性
    return span["title"]
#獲取新聞標題與列表
#調(diào)用create_doc_from_filename函數(shù)
doc = create_doc_from_filename("jiandan.html")
#傳入BeautifulSoup對象,將返回的div列表存儲在index_labels中
index_labels = find_index_labels(doc)
for label_object in index_labels:
    title = get_title(label_object)
    pub_time = get_pub_time(label_object)
    print("標題", title)
    print("發(fā)布時間", pub_time)

將數(shù)據(jù)存為字典的形式

#獲取新聞標題與列表
#調(diào)用create_doc_from_filename函數(shù)
doc = create_doc_from_filename("jiandan.html")
#傳入BeautifulSoup對象,將返回的div列表存儲在index_labels中
index_labels = find_index_labels(doc)
news_dict_list = []
for label_object in index_labels:
    title = get_title(label_object)
    pub_time = get_pub_time(label_object)
    news = {"標題": title, "發(fā)布時間": pub_time}
    news_dict_list.append(news)
print(news_dict_list)

存儲到csv文件

#創(chuàng)建csv
fo = open("news.csv", "w", newline='', encoding='utf-8')
#表頭
header = ["標題", "發(fā)布時間"]
writer = csv.DictWriter(fo, header)
#寫入表頭
writer.writeheader()
#將上一步的字典寫入csv文件中
writer.writerows(news_dict_list)
fo.close()

總結(jié)

到此這篇關于python數(shù)據(jù)分析之將爬取的數(shù)據(jù)保存為csv格式的文章就介紹到這了,更多相關python爬取數(shù)據(jù)保存csv格式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python魔法方法功能與用法簡介

    Python魔法方法功能與用法簡介

    這篇文章主要介紹了Python魔法方法功能與用法,結(jié)合具體實例形式分析了Python面向?qū)ο蟪绦蛟O計中魔法方法的概念、功能、原理、用法及相關操作注意事項,需要的朋友可以參考下
    2019-04-04
  • 全網(wǎng)最全python庫selenium自動化使用詳細教程

    全網(wǎng)最全python庫selenium自動化使用詳細教程

    這篇文章主要介紹了python庫selenium自動化使用詳細教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-01-01
  • Python中decimal.Decimal類型和float類型的比較

    Python中decimal.Decimal類型和float類型的比較

    這篇文章主要介紹了Python中decimal.Decimal類型和float類型的比較,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Python利用ORM控制MongoDB(MongoEngine)的步驟全紀錄

    Python利用ORM控制MongoDB(MongoEngine)的步驟全紀錄

    MongoEngine是一個對象文檔映射器(ODM),相當于一個基于SQL的對象關系映射器(ORM),下面這篇文章主要給大家介紹了關于Python利用ORM控制MongoDB(MongoEngine)的相關資料,需要的朋友可以參考下
    2018-09-09
  • 超級好用的4個Python命令行可視化庫

    超級好用的4個Python命令行可視化庫

    通常大家都是在自己的電腦上跑程序,直接是可以可視化相應的結(jié)果.如果是在服務器上的話,使用終端,是不太方便查看結(jié)果. 今天,小F就給大家介紹4個可以在命令行中使用的Python庫. 分別是Bashplotlib、tqdm、PrettyTable、Colorama,需要的朋友可以參考下
    2021-06-06
  • Python實現(xiàn)隊列的方法

    Python實現(xiàn)隊列的方法

    這篇文章主要介紹了Python實現(xiàn)隊列的方法,實例分析了Python實現(xiàn)隊列的相關技巧,需要的朋友可以參考下
    2015-05-05
  • Numpy隨機抽樣的實現(xiàn)

    Numpy隨機抽樣的實現(xiàn)

    本文主要介紹了Numpy隨機抽樣的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 使用python實現(xiàn)下拉選擇框和頁簽的方法

    使用python實現(xiàn)下拉選擇框和頁簽的方法

    ttk是Python中的一個模塊,它提供了一組用于創(chuàng)建GUI界面的工具和控件,這些控件包括按鈕、標簽、文本框等,可以幫助開發(fā)者更方便地創(chuàng)建用戶界面,這篇文章主要介紹了使用python實現(xiàn)下拉選擇框和頁簽的方法,需要的朋友可以參考下
    2023-03-03
  • Python中self關鍵字的用法解析

    Python中self關鍵字的用法解析

    在Python中,self是一個經(jīng)常出現(xiàn)的關鍵字,特別是在類定義中的方法,這篇文章主要和大家self的作用和用法,希望可以幫助大家更好地理解為什么需要它以及如何正確使用它
    2023-11-11
  • Python Pygame實戰(zhàn)之憤怒的小鳥游戲?qū)崿F(xiàn)

    Python Pygame實戰(zhàn)之憤怒的小鳥游戲?qū)崿F(xiàn)

    《憤怒的小鳥》其實活得還不錯,盡管我們一直在嘲笑它的IP帝國夢做得太大。但要知道,把休閑益智游戲的生意做到這個份上的,恐怕也就獨此一家了。本文將利用Pygame實現(xiàn)這一游戲,需要的可以參考一下
    2022-04-04

最新評論