国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python簡單爬蟲導出CSV文件的實例講解

2020-02-15 22:12:40
字體:
來源:轉載
供稿:網友

流程:模擬登錄→獲取Html頁面→正則解析所有符合條件的行→逐一將符合條件的行的所有列存入到CSVData[]臨時變量中→寫入到CSV文件中

核心代碼:

 ####寫入Csv文件中      with open(self.CsvFileName, 'wb') as csvfile:        spamwriter = csv.writer(csvfile, dialect='excel')        #設置標題        spamwriter.writerow(["游戲賬號","用戶類型","游戲名稱","渠道","充值類型","充值金額","返利金額","單號","日期"])        #將CsvData中的數(shù)據(jù)循環(huán)寫入到CsvFileName文件中        for item in self.CsvData:          spamwriter.writerow(item)

完整代碼:

# coding=utf-8import urllibimport urllib2import cookielibimport reimport csvimport sys class Pyw():  #初始化數(shù)據(jù)  def __init__(self):    #登錄的Url地址    self.LoginUrl="http://v.pyw.cn/login/check"    #所要獲取的Url地址    self.PageUrl="http://v.pyw.cn/Data/accountdetail/%s"    # 傳輸?shù)臄?shù)據(jù):用戶名、密碼、是否記住用戶名    self.PostData = urllib.urlencode({      "username": "15880xxxxxx",      "password": "a123456",      "remember": "1"    })    #第幾筆記錄    self.PageIndex=0;    #循環(huán)獲取共4頁內容    self.PageTotal=1    #正則解析出tr    self.TrExp=re.compile("(?isu)<tr[^>]*>(.*?)</tr>")    #正則解析出td    self.TdExp = re.compile("(?isu)<td[^>]*>(.*?)</td>")    #創(chuàng)建cookie    self.cookie = cookielib.CookieJar()    #構建opener    self.opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie))    #解析頁面總頁數(shù)    self.Total=4    #####設置csv文件    self.CsvFileName="Pyw.csv"    #####存儲Csv數(shù)據(jù)    self.CsvData=[]    #解析網頁中的內容  def GetPageItem(self,PageHtml):    #循環(huán)取出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()        #拼湊行數(shù)據(jù)        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)   #模擬登錄并獲取頁面數(shù)據(jù)  def GetPageHtml(self):    try:      #模擬登錄      request=urllib2.Request(url=self.LoginUrl,data=self.PostData)      ResultHtml=self.opener.open(request)      #開始執(zhí)行獲取頁面數(shù)據(jù)      while self.PageTotal<=self.Total:        #動態(tài)拼湊所要解析的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中的數(shù)據(jù)循環(huán)寫入到CsvFileName文件中        for item in self.CsvData:          spamwriter.writerow(item)       print "成功導出CSV文件!"    except Exception,e:      print "404 error!%s" % e#實例化類p=Pyw()#執(zhí)行方法p.GetPageHtml()            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 衢州市| 屏东县| 彭山县| 剑阁县| 巧家县| 韶关市| 石景山区| 河间市| 绿春县| 纳雍县| 甘南县| 松阳县| 竹北市| 四子王旗| 莒南县| 平潭县| 盐亭县| 北碚区| 兴安县| 确山县| 阜平县| 麻江县| 巢湖市| 错那县| 全南县| 文化| 招远市| 麻城市| 美姑县| 喀喇沁旗| 阳西县| 台东市| 库尔勒市| 永清县| 中宁县| 车致| 平度市| 东莞市| 华宁县| 永寿县| 芦山县|