Beautiful Soup pandas Python スクレイピング データ分析 データ分析入門シリーズ プログラミング

【Python】ウェブサイトのTableタグ内の情報をpandasで効率良くスクレイピングする

この記事は約3分で読めます。

 

こんにちは、ミナピピン(@python_mllover)です!

 

今回はスクレイピングしたwebサイトのテーブルタグの中の情報をデータフレームにして効率良く処理する方法について紹介したいと思います。

 

pandasでテーブルタグ内のテキスト情報をスクレイピングする

 

スクレイピングはrequestsやseleniumで行いますが、pandasのpd.read_html()というメソッドを使用することでURL内のテーブルタグの情報をデータフレームとして取得することができます。

 

以下はヤフーファイナンスの3558(ロコンド)の株価の時系列情報を取得してみた例です

 

import pandas as pd 
dfs = pd.read_html(f'https://m.finance.yahoo.co.jp/stock/historicaldata?code=3558.T')
dfs[0]

 

<実行結果>

 

 

日本語ドキュメント:https://www.delftstack.com/ja/api/python-pandas/pandas-dataframe-dataframe.to_excel-function/#%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2589%25E4%25BE%258Bpandas-dataframe.to_excel-%25E3%2581%25A8-excelwriter

 

これrequestsやseleniumとかでやろうとすると結構手間は掛かるので非常に便利ですが、内部の処理の詳細がよく分からないので依存しすぎるのもちょっと怖い感じがします。

 

でも動いているからヨシ!

 

小ネタ・注意点

 

ウェブサイトによってはテーブルの情報をJSで動的生成しているものがあり、そういった場合はpd.read_table()でテーブル情報を取得できない時があります。

 

スクレイピングができないときはSeleniumでJSでテーブルが動的生成された後のHTMLを対象とするとテーブル情報をデータフレームとして取得できます。

 

参考記事:【Python】「Selenium」を使ってブラウザを自動操作する

 

 

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

  1. Hold Porn より:

    First time here, haha

タイトルとURLをコピーしました