Kazu Home Page

Aug 9, 2020
XML
カテゴリ: IT関連情報
前回WEBデータをスクレイピング ​するところまでは出来ました。ただ、下記のようにHTMLになっていて、編集するのが大変です。

<div class="Data05">芝1200 1:08.5 <strong>稍</strong></div>
<div class="Data03">16頭 15番 12人 柴田大知 57.0</div>
<div class="Data06">1-1 (34.5) 498(-2)</div>
<div class="Data07"><a href="https://db.netkeiba.com/horse/2016104500" target="_blank">ブレイブメジャー</a>(-0.8)</div>
<a class="movie_202003020311" href="../race/movie.html?race_id=202003020311" style="display: none">

HTMLを解析して、テキストを抽出するにはどうしたらよいかと再度ぐぐっていたら、 ​​ Pythonで取得したWebページのHTMLを解析するはじめの一歩 ​​
という良いページを見つけました。読んでみると前回最後に紹介した #BeautifulSoupを使うようでした。紹介したWEBページではインストールにはpipを使っていましたが、私はanacondaなので

conda install beautifulsoup4

となります。インポートはrequestsをインストールした場所で行います。

import requests
#BeautifulSoup は文字化け対策
from bs4 import BeautifulSoup​
解析を行うにはHTMLからBeautiful Soupオブジェクトを生成します。


書式は上記のようで、BeautifulSoup(HTML文字列, パーサー)となります。パーサーが良くわからないですが、
Pythonに標準で付属している「html.parser」を指定しておくのがベターだと思います。

あとは解析したいHTMLを取り出すことが出来ます。

soup =BeautifulSoup(res.text , 'html.parser')
print(soup.title)
​見事、アイビスサマーダッシュのタイトルをゲット出来ました。枠情報や前5走の情報を仕入れたいですが、まずはテキストで情報をだすとどのようになるのか調べてみました。
for elem in elems:
    print(soup.getText())


f = open('out.csv', 'w')
data =soup.getText()
writer = csv.writer(f)
writer.writerow(data)
f.close()

書き出そうとしたところでエラーが出ました。CP932は変換できないと。

またまた、ぐぐらなければなりません。早速CP932でぐぐると簡単にみつかりました。(リンクは​ ここ ​)日本語OSや特殊OSの文字コードがPyhtonでは変換できないと書いてあります。

中身を読むと、表現できない字は無視する便利なコマンドがあるようです。
# CP932 で表現できない文字は無視する
f = open('all_names.csv', 'w', encoding='CP932', errors='ignore') 
早速適応してみましょう

変換は出来た模様です。ちょっと出力された文字にまた、HTMLが入ってきているのが不安なのですが、とりあえずファイルに出力してみることにしました。​
writer = csv.writer(f)
writer.writerow(data)
f.close()
​出来上がったフィルは、、、インポートしようとすると文字化けおよび、1行にすべて書かれているようでダメなようです。別な手法を探さなければなりません。











お気に入りの記事を「いいね!」で応援しよう

Last updated  Aug 9, 2020 03:12:19 PM
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

Free Space

設定されていません。

Calendar

Comments

kazu_x68k @ Re[1]:2021年ブログ初め 文字化け解消(01/04) グリ太さんへ 遅くなりましたが、明けまし…
グリ太 @ Re:2021年ブログ初め 文字化け解消(01/04) 明けましておめでとうございます。今年も…
グリ太 @ Re:Python で 競馬予想 実践第10回 チャンピオンズカップ他(12/06) 私も相手探しだとは思うのですが、川田がG…
kazu_x68k @ Re[1]:Python で 競馬予想 実践第8回 ジャパンカップ他(11/28) グリ太さんへ さすがに3強には勝てなかっ…

Favorite Blog

ごった煮 グリ太さん
趣味のDVDと投資… チャック・ハウアさん
 TM万太郎の なまら… TM万太郎さん

Archives

Dec , 2024
Nov , 2024
Oct , 2024
Sep , 2024
Aug , 2024

© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: