前言
通過爬蟲p2p網(wǎng)站某產(chǎn)品交易數(shù)據(jù)蜘腌,分析實(shí)時交易量及增長趨勢,判斷產(chǎn)品活力。
(因不想體現(xiàn)為某p2p網(wǎng)站踏志,所以里面網(wǎng)站地址使用xxxxxx進(jìn)行代替,另代碼可參看最下方的github地址胀瞪。)
目錄
一针余、P2P某產(chǎn)品交易量分析
二、工具及相關(guān)python包
三凄诞、獲取網(wǎng)站的標(biāo)號及交易量并存入本地excel
四圆雁、根據(jù)excel表格中的數(shù)據(jù)進(jìn)行分析統(tǒng)計實(shí)時交易量
五、jenkins配置
六帆谍、效果圖展示如下圖
七伪朽、gitlab源碼地址
一、實(shí)現(xiàn)思路
1汛蝙、提取投標(biāo)項目號
2烈涮、根據(jù)標(biāo)號進(jìn)入分頁進(jìn)行資金收集
3、將交易量輸入excel表格
4窖剑、根據(jù)excel統(tǒng)計出最新的交易總和
二坚洽、工具及相關(guān)python包
python3? Pycharm?urllib?bs4?re?xlrd?xlutils.copy? jenkins
三、獲取網(wǎng)站的標(biāo)號及交易量并存入本地excel
#導(dǎo)入所需要的相關(guān)包
from html.parser import HTMLParser
from urllib import request
from bs4 import BeautifulSoup
import reimport time
import xlrd,xlwt,os,sys,xlutils
from xlrd import open_workbook
from xlutils.copy import copy
#此函數(shù)為獲取網(wǎng)站的標(biāo)號及剩余量
def getdata(data1,data2,data3):
? with request.urlopen(data1) as f:
? ? ? data = f.read().decode('utf-8').replace(u'\xa9', u'') #listp接收標(biāo)號的url進(jìn)行拼接? ?
? ? ? listp = []
? ? ?res_tr = re.findall(r'/Venus/\d+',data)
? ? ?for i in res_tr:
? ? ? ? ? ?listp.append(i)?
? ? listj = []?
? ?listm = []
? #listj接收剩余量 listm接收標(biāo)號
? for j in listp:?
? ?listm.append(j.split('/')[2]) #獲取/標(biāo)號
? ?url = "https://xxxxxxxx.com" + j #拼接標(biāo)號url?
? with request.urlopen(url) as f:? ? ? ? ? ? ? ?
? ? ? ? ? ? ? data = f.read().decode('utf-8').replace(u'\xa9', u'') #獲取標(biāo)號頁面
? with open(data3, 'w') as f: #標(biāo)號頁面存入data3
? ? ? ? ? ? ?for i in data: f.write(i)
? ? ? ? ? ? soup = BeautifulSoup(open(data3)) #使用BeautifulSoup格式化頁面html
? ? ? ? ? ? jr = (soup.find_all(class_="canbid-amount")) #根據(jù)class標(biāo)簽找到剩余量
? if jr: listj.append(str(jr[0]).split('')[1].split('')[0]) #切割剩余量獲取數(shù)據(jù)
? else: listj.append("收益中") #無剩余量顯示? ?
? ?dictjm = dict(zip(listm, listj)) #剩余量 標(biāo)號存入字典dictjm
? ?return dictjm #返回
def sendexcl(url,getjm):
? ? ? rexcel = open_workbook(url) #打開excel
? ? ? rows = rexcel.sheets()[0].nrows #統(tǒng)計行
? ? ? cols = rexcel.sheets()[0].ncols #統(tǒng)計列
? ? ? excel = copy(rexcel) #復(fù)制表
? ? ? table = excel.get_sheet(0) #第一張表
? ? ? j = 0
? ? ?for i, m in getjm.items(): #字典讀取數(shù)據(jù)excel寫入標(biāo)號
? ? ? ? ? ? ? ? ? table.write(rows, j, i) #第一張表行寫入數(shù)據(jù)j用于定位行列 i為插入數(shù)據(jù)
? ? ? ? ? ? ? ? ? ?j += 1 #列后移一位
? ? ?rows += 1 #行后移一位
? ? ?excel.save(url) #保存數(shù)據(jù)
? ? ?j = 0
? ? for i, m in getjm.items(): #excel寫入剩余量
? ? ? ? ? ? ? ? table.write(rows, j, m)
? ? ? ? ? ? ? ? j += 1
? ?rows += 1
? ?excel.save(url)
getjm = getdata("https://xxxxxxxxxxxxxx","jmgetlog","jmget1log") #獲取剩余量標(biāo)號字典sendexcl("F:\JIMU\JMQST.xlsx",getjm) #excel存入字典
四西土、根據(jù)excel表格中的數(shù)據(jù)進(jìn)行分析統(tǒng)計實(shí)時交易量
import xlrd
data = xlrd.open_workbook("F:\JIMU\JMQST.xlsx")
table = data.sheets()[0] # 第幾個sheet
nrows = table.nrows # 行數(shù)
ncols = table.ncols # 列數(shù)
colnames = table.row_values(1) # 某一行數(shù)據(jù)
print(colnames)
colnames2 = table.row_values(nrows-1)
print(colnames2)
dictn = dict(zip(colnames,colnames2))
del dictn["收益中"]
print(dictn)
listn = []
for i,j in dictn.items():
? ? ? ? ? i = i.replace(',','')
? ? ? ? ? j = j.replace(',','')
? ? ? ? ? m = float(i) - float(j)
? ? ? ? ? listn.append(m)
print(listn)
m = 0
for i in listn:
? ? ? ?m += i
? ? ? print(m)
? ? ? print("輕松投減少量為:%f"%(m))
with open('F:\JIMU\pylog', 'a+') as f:
? ? ? ?f.write('\n')
? ? ? ?f.write(str(m))
? ? ? ?print("sucessful ok")
五讶舰、jenkins配置
圖一為jenkins定時任務(wù)配置兩分鐘進(jìn)行一次
圖二為jenkins python配置 jimuDA3.py獲取實(shí)時交易量 test1.py 統(tǒng)計交易總
六、效果圖展示如下圖
圖三交易量收集輸入excel表格
圖四 根據(jù)excel表格數(shù)據(jù)統(tǒng)計出實(shí)時的交易量需了,兩分鐘統(tǒng)計一次跳昼,由圖可見最新總交易量為一千一百余萬
七、github地址
https://github.com/tanghuan123/getdata
https://github.com/tanghuan123/getdata/blob/master/getjmdata.py
https://github.com/tanghuan123/getdata/blob/master/test1.py