爬蟲在遊戲資料分析的一個實踐

來源:互聯網
上載者:User

標籤:http   使用   os   檔案   資料   width   

在實際工作中,資料的來源不能局限於自家的資料庫或者成型的後台,在做某些市場分析或是競爭者開服節奏分析的情況下,對競爭者資料的獲得顯得更為至關重要,本文就以擷取某大平台開服資料作為一個案例,簡要的介紹另一種擷取資料的方法,網路爬蟲技術。

何為網路爬蟲,爬蟲是一個自動提取網頁的程式,為搜尋引擎在全球資訊網上下載網頁,是搜尋引擎的重要組成部分。簡單的講就是從一個或若干個初始頁面的URL開始,獲得初始頁面上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的某些停止條件。

本文利用爬蟲收集各大平台開服資料列表上的相關資料,減去了在收集開服資料的繁瑣,以下就是一個簡單爬蟲及正則的例子,從某知名頁遊平台上抓取開服資料。爬起中文資料常有的問題就是不規格的編碼模式,這需要在程式的編寫過程中注意編碼轉換。

在此之前簡要的講一下擷取資料的另一個重要內容,Regex。Regex就是由一般字元(例如字元 a 到 z)以及特殊字元(稱為元字元)組成的文字模式。該模式描述在尋找文字主體時待匹配的一個或多個字串。Regex作為一個模板,將某個字元模式與所搜尋的字串進行匹配。Regex元字元及文法可以在http://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx詳細查閱。

使用python編寫爬蟲程式,匯入相應的模組urllib2,使用urlopen下載網頁,在網頁中使用正則獲得想要獲得相應的資料。

簡要的介紹urllib2模組中用到的方法,

urllib.urlopen(url[, data[, proxies]]) :

url: 表示遠端資料的路徑

data: 以post方式提交到url的資料

proxies:用於設定代理

urlopen返回對象提供方法:

read() , readline() ,readlines() , fileno() , close() :這些方法的使用方式與檔案對象完全一樣

info():返回一個httplib.HTTPMessage對象,表示遠程伺服器返回的頭資訊

getcode():返回Http狀態代碼。如果是http請求,200請求成功完成;404網址未找到

geturl():返回請求的url

import urllib2

import re

msg=urllib2.urlopen(‘http://www.****.com/‘).read()

res=re.findall(‘tr>[\s\S]*?target=\"_blank\" class=\"cred\">(.*?)(.*?)[\s\S]*?

‘,msg)

for res1 in res:

for res2 in res1

print res2.decode(‘utf-8‘)

用MySQL儲存資料,先要在自己的資料庫裡建立一個空表,這裡我建立了一個名為KFdata的資料庫,表名為data_one,相應的在python中匯入相應的MySQL模組,並與相應資料庫連接,將資料寫入資料庫。

import MySQLdb

db=MySQLdb.connect(host="localhost",user="root",password="123456",db="KFdata",use_unicode=1,charset=‘utf-8‘)

cursor=db.cursor()

for i in range(20):

cursor.execute("insert into data_one values(%s,%s,%s,%s,%s,%s,%s,%s)",(id[i],‘h‘,index[i],time1[i],size[i],hit[i],lz[i],title1[i]))

轉載請註明來源:http://www.gamedatas.com

原文地址:http://www.gamedatas.com/archives/73

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.