<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
csv是我接觸的比較早的一種檔案,比較好的是這種檔案既能夠以電子試算表的形式檢視又能夠以文字的形式檢視。
先引入pandas庫
import pandas as pd
1、我構造了一個cont_list,結構為列表巢狀字典,字典是每一個樣本,類似於我們爬蟲爬下來的資料的結構
2、利用pd.DataFrame方法先將資料轉換成一個二維結構資料,如下方列印的內容所示,cloumns指定列表,列表必須是列表
3、to_csv方法可以直接儲存csv檔案,index=False表示csv檔案不加行序號
儲存csv結果
應用到我們的爬蟲程式碼,傳入的con_list就是[{},{},{}****]這樣的額資料結構,encoding="utf_8_sig",encoding="gb18030」,我這邊解決中文編碼問題
是不是很方便就,2行程式碼即可搞定儲存,是不是比上次講的方法簡單好多,其實很多方法,還有python的優秀庫,都使python這門語言在資料分析領域有極大的優勢
流程:模擬登入→獲取Html頁面→正則解析所有符合條件的行→逐一將符合條件的行的所有列存入到CSVData[]臨時變數中→寫入到CSV檔案中
核心程式碼:
####寫入csv檔案中 with open(self.CsvFileName, 'wb') as csvfile: spamwriter = csv.writer(csvfile, dialect='excel') #設定標題 spamwriter.writerow(["遊戲賬號","使用者型別","遊戲名稱","渠道","充值型別","充值金額","返利金額","單號","日期"]) #將CsvData中的資料迴圈寫入到CsvFileName檔案中 for item in self.CsvData: spamwriter.writerow(item)
完整程式碼:
# coding=utf-8 import urllib import urllib2 import cookielib import re import csv import sys class Pyw(): #初始化資料 def __init__(self): #登入的Url地址 self.LoginUrl="http://v.pyw.cn/login/check" #所要獲取的Url地址 self.PageUrl="http://v.pyw.cn/Data/accountdetail/%s" # 傳輸的資料:使用者名稱、密碼、是否記住使用者名稱 self.PostData = urllib.urlencode({ "username": "15880xxxxxx", "password": "a123456", "remember": "1" }) #第幾筆記錄 self.PageIndex=0; #迴圈獲取共4頁內容 self.PageTotal=1 #正則解析出tr self.TrExp=re.compile("(?isu)<tr[^>]*>(.*?)</tr>") #正則解析出td self.TdExp = re.compile("(?isu)<td[^>]*>(.*?)</td>") #建立cookie self.cookie = cookielib.CookieJar() #構建opener self.opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie)) #解析頁面總頁數 self.Total=4 #####設定csv檔案 self.CsvFileName="Pyw.csv" #####儲存Csv資料 self.CsvData=[] #解析網頁中的內容 def GetPageItem(self,PageHtml): #迴圈取出Table中的所有行 for row in self.TrExp.findall(PageHtml): #取出當前行的所有列 coloumn=self.TdExp.findall(row) #判斷符合的記錄 if len(coloumn) == 9: # print "遊戲賬號:%s" % coloumn[0].strip() # print "使用者型別:%s" % coloumn[1].strip() # print "遊戲名稱:%s" % coloumn[2].strip() # print "渠道:%s" % coloumn[3].strip() # print "充值型別:%s" % coloumn[4].strip() # print "充值金額:%s" % coloumn[5].strip().replace("¥", "") # print "返利金額:%s" % coloumn[6].strip().replace("¥", "") # print "單號:%s" % coloumn[7].strip() # print "日期:%s" % coloumn[8].strip() #拼湊行資料 d=[coloumn[0].strip(), coloumn[1].strip(), coloumn[2].strip(), coloumn[3].strip(), coloumn[4].strip(), coloumn[5].strip().replace("¥", ""), coloumn[6].strip().replace("¥", ""), coloumn[7].strip(), coloumn[8].strip()] self.CsvData.append(d) #模擬登入並獲取頁面資料 def GetPageHtml(self): try: #模擬登入 request=urllib2.Request(url=self.LoginUrl,data=self.PostData) ResultHtml=self.opener.open(request) #開始執行獲取頁面資料 while self.PageTotal<=self.Total: #動態拼湊所要解析的Url m_PageUrl = self.PageUrl % self.PageTotal #計算當期第幾頁 self.PageTotal = self.PageTotal + 1 #獲取當前解析頁面的所有內容 ResultHtml=self.opener.open(m_PageUrl) #解析網頁中的內容 self.GetPageItem(ResultHtml.read()) ####寫入Csv檔案中 with open(self.CsvFileName, 'wb') as csvfile: spamwriter = csv.writer(csvfile, dialect='excel') #設定標題 spamwriter.writerow(["遊戲賬號","使用者型別","遊戲名稱","渠道","充值型別","充值金額","返利金額","單號","日期"]) #將CsvData中的資料迴圈寫入到CsvFileName檔案中 for item in self.CsvData: spamwriter.writerow(item) print "成功匯出CSV檔案!" except Exception,e: print "404 error!%s" % e #範例化類 p=Pyw() #執行方法 p.GetPageHtml()
匯出結果
import pandas as pd data = pd.read_table('地址', sep=",")['網址'].values print(data[1])
到此這篇關於使用pandas生成/讀取csv檔案的文章就介紹到這了,更多相關pandas生成讀取csv檔案內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45