【Python】Pythonでtableをスクレイピングしてcsvファイルに出力する



どうもバーチャルめがねです。

今回は今までと趣向を変えてちょっと真面目な内容になっています。
その名もちょっとスクレイピングとかしたくなってきたから今ハマってるグラブルの武器一覧表をスクレイピングしてcsvファイルに保存したろうという企画です。
このページから武器の表をスクレイピングする方法を記していきます。ではやっていきましょう。


スクレイピング手順

まずスクレイピングをするときはWebページへ行ってサイトの構造を調べるのが重要です。
わたしはhtmlにあまり精通していないのでこの作業が死ぬほど嫌いですが...

そして、tableをスクレイピングしたい場合はスクレイピングしたいテーブルのクラスをデベロッパーツールで確認する→そのクラスのテーブルを指定してスクレイピングすることでテーブル全体を取得する。

このような流れで表はスクレイピング可能となっています。
ってなわけでいきなりですがコードをドン!



自分はコピペするのに画像で載せてしまって申し訳ないですが、コードはこんな感じになっています。
参考にさせていただいたページはこちらです。

必要なパッケージ
・BeautifulSoup4

解説

まずは参照するurlを定義しましょう。今回の場合だと直接そのurlを代入していますが...
そしてそのurlを開いてhtml化してやりましょう。そのhtmlをBeautifulSoupでパースしてまぁ簡単に要素指定できるようにしましょう。

そして今回行なっているのはBeautifulSoupのfindAll関数を用いてtableを抽出する→そっからfindAll関数でtrタグを探し行を検出する→その行に対してfindAll関数で列とその内部のテキストを取得する

という感じです。
でまぁ最後にcsvにその内容を出力しているという感じです。

結果はこんな感じ。



Pythonのファイル名がちょっとxpathと関係ないのにこんな名前ですまんこう...

感想

今までスクレイピング難しいイメージだったんですが、簡単な表くらいならコピペ星人のわたしでもできました。ただ今回は文字化けがでてきてないのでかなり運が良かった方だと思います。別のページで試したらへにゃみんごみたいな文字になって帰ってきたのでPC閉じました。

ってなわけで今回はこのあたりで!最後まで読んでくださって謝謝茄子!













0 件のコメント :

コメントを投稿