Python簡單爬蟲匯出CSV檔案

2021-07-26 13:17:08 字數 3383 閱讀 6930

流程:模擬登入→獲取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=""

#所要獲取的url位址

self.pageurl=""

# 傳輸的資料:使用者名稱、密碼、是否記住使用者名稱

self.postdata = urllib.urlencode()

#第幾筆記錄

self.pageindex=0;

#迴圈獲取共4頁內容

self.pagetotal=1

#正則解析出tr

self.trexp=re.compile("(?isu)]*>(.*?)")

#正則解析出td

self.tdexp = re.compile("(?isu)]*>(.*?)")

#建立cookie

self.cookie = cookielib.cookiejar()

#構建opener

#解析頁面總頁數

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()]

#模擬登入並獲取頁面資料

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()

匯出結果

python三 之簡單爬蟲csv格式儲存

中國圖書網裡面計算機類別的書籍資料,並存入csv檔案 選取 www.bookschina.com kinder 27000000 前面的步驟都一樣,這裡主要不一樣的是主要檔案和pipeline檔案 1 編寫items檔案 class doubanbookitem scrapy.item define...

python 使用csv模組匯出csv檔案問題

python3中存csv亂碼的問題 with open filename,a newline encoding utf 8 sig as f 中文需要設定成utf 8格式 open 增加encoding得設定即可 python2不支援 python2中中文亂碼問題 用記事本開啟匯出得csv檔案,另存...

python爬蟲簡單 python爬蟲 簡單版

學過python的帥哥都知道,爬蟲是python的非常好玩的東西,而且python自帶urllib urllib2 requests等的庫,為爬蟲的開發提供大大的方便。這次我要用urllib2,爬一堆風景。先上重點 1 response urllib2.urlopen url read 2 soup...