1. 程式人生 > 程式設計 >Python CSV檔案模組的使用案例分析

Python CSV檔案模組的使用案例分析

本文例項講述了Python CSV檔案模組的使用。分享給大家供大家參考,具體如下:

1、CSV模組使用流程

1、匯入模組

impport CSV

2、開啟檔案(xxx.csv)

with open('xxx.csv','a',encoding='utf-8') as f:

  • 1、a和 a+ ‘追加'功能

a 追加寫

a+ 追加寫讀(先寫後讀)

  • 2、r 和 r+

r 只讀

r+讀寫,先讀後寫

  • 3、w,w+

w 只寫

w+寫讀 先寫後讀

3、初始化寫入物件

writer = csv.wirter()

4、寫入資料

writer.writerow(['孫悟空','蘭陵王'])

案例:

貓眼電影top10榜單的爬取

1、網址:url

2、目標:爬取自己想要的檔案

3、儲存本地:csv檔案

4、步驟

  • 1、找url規律

第一頁:https://maoyan.com/board/4?offset=0

第4頁:https://maoyan.com/board/4?offset=30

第n頁:offset=(n-1)*10

  • 2、寫正則表示式

'<div class="movie-item-info".*?title="(.*?)".*?class="star">(.* ?)</p>.*?class="releasetime">(.*?)</p>',re.S

練習:爬取貓王top10資訊

from urllib import request
import re
import time
import csv
class MaoyanSpider(object):
   def __init__(self):
    self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"}
    self.page = 1
    # 用來計數
   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)
     #p=re.compile('<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.* ?)</p>.*?class="releasetime">(.*?)</p>',re.S)
     r_list = p.findall(html)
     # 直接呼叫儲存函式
     # r_list:[('霸王別姬','張國榮','1993'),(),()]
     self.write_csv(r_list)
  # 儲存資料函式
   def  write_csv(self,r_list):
     with open('貓眼電影top10.csv','a') as f:
      writer = csv.writer(f)
      # 依次寫入每個電影資訊
      for r_t in r_list:
        film = [
          r_t[0].strip(),r_t[1].strip(),r_t[2].strip()
          ]
        writer.writerow(film)
  #主函式
   def work_om(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_om()
  end = time.time()
  print("執行時間%.2f"%(end - begin))

執行截圖:

更多Python相關內容感興趣的讀者可檢視本站專題:《Python操作Excel表格技巧總結》、《Python編碼操作技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》

希望本文所述對大家Python程式設計有所幫助。