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

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

 更新時間:2018年07月06日 09:23:56   作者:藏何  
今天小編就為大家分享一篇Python簡單爬蟲導出CSV文件的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

流程:模擬登錄→獲取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-8
import urllib
import urllib2
import cookielib
import re
import csv
import 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頁內(nèi)容
    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=[]
 
   #解析網(wǎng)頁中的內(nèi)容
  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
        #獲取當前解析頁面的所有內(nèi)容
        ResultHtml=self.opener.open(m_PageUrl)
        #解析網(wǎng)頁中的內(nèi)容
        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()

導出結果

以上這篇Python簡單爬蟲導出CSV文件的實例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 使用python將csv數(shù)據(jù)導入mysql數(shù)據(jù)庫

    使用python將csv數(shù)據(jù)導入mysql數(shù)據(jù)庫

    這篇文章主要為大家詳細介紹了如何使用python將csv數(shù)據(jù)導入mysql數(shù)據(jù)庫,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-05-05
  • python內(nèi)建類型與標準類型

    python內(nèi)建類型與標準類型

    這篇文章主要介紹了python內(nèi)建類型與標準類型,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Python繪制圣誕樹+落葉+雪花+背景音樂+浪漫彈窗?五合一版圣誕樹

    Python繪制圣誕樹+落葉+雪花+背景音樂+浪漫彈窗?五合一版圣誕樹

    馬上不就到圣誕節(jié)了嘛,我看到朋友圈里很多小伙伴再紛紛炫耀自己收到的專屬圣誕樹,今天小編給大家介紹的是通過Python繪制的五合一版圣誕樹:圣誕樹+落葉+雪花+背景音樂+浪漫彈窗。感興趣的小伙伴快來學習一下吧
    2021-12-12
  • 利用pandas進行數(shù)據(jù)清洗的7種方式

    利用pandas進行數(shù)據(jù)清洗的7種方式

    采集到原始的數(shù)據(jù)中會存在一些噪點數(shù)據(jù),噪點數(shù)據(jù)是對分析無意義或者對分析起到偏執(zhí)作用的數(shù)據(jù),所以這篇文章給大家介紹了利用pandas進行數(shù)據(jù)清洗的7種方式,需要的朋友可以參考下
    2024-03-03
  • 為什么從Python 3.6開始字典有序并效率更高

    為什么從Python 3.6開始字典有序并效率更高

    這篇文章主要給大家介紹了關于為什么從Python 3.6開始字典有序并效率更高的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • 使用pandas的box_plot去除異常值

    使用pandas的box_plot去除異常值

    今天小編就為大家分享一篇使用pandas的box_plot去除異常值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python 函數(shù)裝飾器應用教程

    Python 函數(shù)裝飾器應用教程

    函數(shù)裝飾器是Python提供的一種增強函數(shù)功能的標記函數(shù),本文將帶大家深入學習一下Python 函數(shù)裝飾器,感興趣的同學跟隨小編一起學習吧
    2021-12-12
  • Python實現(xiàn)矩陣運算的方法代碼實例

    Python實現(xiàn)矩陣運算的方法代碼實例

    這篇文章主要介紹了Python實現(xiàn)矩陣運算的方法代碼實例,想用python實現(xiàn)一個矩陣類,它可以像matlab或者numpy中的矩陣一樣進行運算,生成一個矩陣類Matrix之后,他接收一個二維列表作為輸入,然后將對應的值寫到矩陣對應的位置,需要的朋友可以參考下
    2023-08-08
  • 詳解Python3中字符串中的數(shù)字提取方法

    詳解Python3中字符串中的數(shù)字提取方法

    這篇文章主要介紹了詳解Python3中字符串中的數(shù)字提取方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Python 類,對象,數(shù)據(jù)分類,函數(shù)參數(shù)傳遞詳解

    Python 類,對象,數(shù)據(jù)分類,函數(shù)參數(shù)傳遞詳解

    這篇文章主要介紹了深入理解Python 類,對象,數(shù)據(jù)分類,函數(shù)參數(shù)傳遞,涉及具體代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2021-09-09

最新評論