retarfiの日記

写真/Python/golfなどつらつらと。

HTMLをキャッチする

お久しぶりです。
3ヶ月程空いてしまいましたが、レポートが忙しくて全然記事を書けませんでした(書くことがなかったという説もある)。
最近はW杯ですね。ふと、totoを統計的に考えたら当たるんじゃないか、なんて考えてtoto miniの各パターンの投票割合を計算するプログラムを作りました。
理論的には期待値が50円なので儲かることは基本ないですが...笑
外部URLからHTMLを取得して操作します。
使うライブラリはurllibです。Python3のみ使えます。(Python2は分裂前のライブラリだった気がする)
使い方はこんな感じ。

#! /usr/bin/python  
# -*- coding: utf-8 -*-  
from urllib.request import urlopen  
import re  
  
response = urlopen("抽出したいURL")  
code = str(response.read(),'utf-8')  
response.close()  

これでcodeにHTMLが入るのであとはお好きに正規表現なりでデータを引っこ抜く。

で、こんな感じでとりあえずtoto miniの全通りの投票割合を出してみましょう。

from urllib.request import urlopen  
import re  

response = urlopen("抽出したいURL")  
code = str(response.read(),'utf-8')  
response.close()  
pattern1 = re.compile(r'<td width=".*?class="td_')  
li = pattern1.findall(code)  
percent_li = [[0.01*float(li[3*i+j].replace(r'<td width="',"").replace(r'%" class="td_',"")) for j in range(3)] for i in range(int(len(li)/3))]  
print(percent_li)

これで出てきます。例えば
http://sport-kuji.toto-dream.com/dci/I/IPC/IPC01.do?op=initVoteRate&commodityId=07&holdCntId=1015
なんか入れてあげると出ます。URL中の07を06にするとB組ではなくA組、1015は開催回を指してます。

役に立たないものを作ってしまった感...