ページ

2018年11月24日土曜日

マイジャグラー3のデータだけを取るプログラムをつくった

というわけでつくりました。製作時間およそ1週間

正直この方のコードをほぼコピペしてしまっているようになってしまっています。
https://github.com/mamurata0924/Vegas
全くかけないのが辛いですね。

ほぼコピペしてしまっているのになぜ1週間もかかったのかは聞くな。後で書くかもしれん。

とりあえずソースをば

from bs4 import BeautifulSoup
import requests
import datetime
import csv
import time
allinfo = []
infos = []
today = str(datetime.date.today())
urllist = ["a" for x in range(23)]
i = 775
for x in range(23):
    urllist[x] = "http://hakuwa.pt.teramoba2.com/hl-1029/standgraph/?rack_no="+str(i)+"&target_date="+today
    i+=1
session = requests.Session()

def date_rack():
    response = session.get(urllist[x])
    soup = BeautifulSoup(response.text,'html.parser')
    rack_info = soup.find(class_="box-base machine-info")
    ban = rack_info.find(class_="current tac").text
    bb = rack_info.find(class_="daidigit num ll big").text
    rb = rack_info.find(class_="daidigit num ll reg").text
    game = rack_info.find(class_="right soukaiten").find(class_="daidigit num s green").text
    bbrate = rack_info.find(class_="left bbrate").find(class_="daidigit num ss green").text.replace(u"\xa0",u"")
    rbrate = rack_info.find(class_="center rbrate").find(class_="daidigit num ss green").text.replace(u"\xa0",u"")
    gouseirate = rack_info.find(class_="right gouseirate").find(class_="daidigit num ss green").text.replace(u"\xa0",u"")

    return [ban,game,bb,rb,bbrate,rbrate,gouseirate]

for x in range(23):
    infos.append(date_rack())
    time.sleep(1)
    
output = "suns_victory_マイジャグ3_{0}".format(today) + ".csv"
with open(output,'w',encoding='utf_8_sig') as csv_file:
    srotname = ["マイジャグラー3"]
    fieldnames = ["台番号","総回転数","BB数","RB数","BB確率","RB確率","合成確率"]
    writer = csv.writer(csv_file, lineterminator='\n',quoting=csv.QUOTE_MINIMAL)
    writer.writerow(srotname)
    writer.writerow(fieldnames)

    writer.writerows(infos)

csv_file.close()

結果


とりあえず自分でもアホか?って思えるところは10行目の"i=775"ってところとあとforのところがそうじてrange(23)になってるところですね

台の番号が775だしそれいれたろ!ってことですね。range(23)は22台あるし22回ぶん回せばよくね?!ってことです。アホですね。


あとデータを取得する関数date_rack()の中身がぜんぜんスタイリッシュじゃないのも気に食わない。

さらにいうとこの関数は土壇場で思いついてつくったもの。できればマイジャグラー4のデータも使いたくね?って思ったのでとっさに調べていれてみた。

というか、これまでPythonでテキトーに何かを作ったことがあったけど関数を使ったことが一度もないオブジェクト指向否定論者だったので意味がわかりませんでしたね使い方の。

上にあげた参考のソースコードも最初全く読めませんでしたね。なんだよクラスって。defってなんだよって感じ。必死によんだらなんとなくわかるようにはなりましたが
言ってないけど俺実はPython中2から勉強してたんだぜ…未だに習得できてねえが


1週間かかったい理由も書いておきますか。一応データは取得できるまでは簡単にすんなり(ほぼコピペ)のためできたんですけど…
CSV出力でワケワカメになりましたね。コピペプログラマーはこれだからクソ。
書き出したいのは「775,9831,1123....」みたいな感じなのに「7,7,5,,9,8,3,1,,1,1,2,3....」みたいになるのがまったくもって解決できなくて時間がかかった

もうヤフー知恵袋で聞くか?と思ったけど踏みとどまって上記参考URLのコードを一からじっくり読むとどう動いているかがなんとなくわかってその挙動を示すコードをペタッってしたら期待した出力が出てきてしまった。あれ…俺、何も自分の力でやってなくね???

と、まあ一応はできました。最初の一歩の一歩でしかも人様のコード丸パクリで非常にアレなんですが…

一応展望としてはマイジャグ3とマイジャグ4ひいてはジャグラーの島全体のデータを取れるようにはしたい。だけどこのパチ屋ジャグラー弱そげなんだよなあ…

人気機種の絆あたりのデータも取って立ち回りの勉強をしていきたい所存

あとi=775あたりのくっそアホみたいなやつをどうにかして解消したいですね

0 件のコメント:

コメントを投稿