seleniumでデータが取れない場合に考えること〜IFRAMEと呼ばれる罠〜

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

今回はseleniumについて、データが上手く取れないなぁと悩んだときに大概引っかかってる要因となっているiframeと言うなのHTML特有の作りについて解説していきたいと思います。

iframeの簡単な説明をして、その後seleniumでiframeに対応するためのswitch_toメソッドの紹介をしていきます。

では、いってみましょう。

スポンサーリンク
もしも_楽天

IFRAME(アイフレーム)とは?

では、まずはIFRAMEとはそもそも何か?と言うところから始めます。

iframeとは、HTMLの要素(タグ)の一つで、Webページ内に矩形の領域を設け、別のWebページなどを読み込んで表示するもの。

http://e-words.jp/w/iframe.html

定義だけみてもよくわからないかもですが、IFRAMEとはinline frameの略で、定義にもあるように別のWebページを読み込んでインラインで表示するものです。

インラインとは、ざっくりいってしまうと、基本のHTMLの中に、別のHTMLドキュメントをもう一個付け加えている感じ。要は、ページの中にさらにページがあるんだ、ってノンプロ的には理解してしまえばいいかと思います(ざっくりすぎ汗)

一般的にiframeが利用されるケースとしては、google mapやtwitter/facebookなどのタイムラインをページ内に表示するケースで利用されるケースが多いですが、それ以外でも実は結構iframeで表示されているコンテンツがページ内に存在することがあります。

IFRAMEの基本のき

そもそもIFRAMEがどう言う設定(コード)なのかが、理解できないとこの後の問題が発生する理由や発見の仕方が理解しにくくなるので、脱線気味ではありますが、IFRAMEの基本のきを解説していきたいと思います。

IFRAMEコード

ざっくりやると以下のようなやつです。idとかは別になんでもいいのですが、肝は①iframeと言うタグであること②srcで埋め込むページのURLを指定することの2点になります。

<iframe id="inline-frame"
  width="表示幅"
  height="表示高"
  src="埋め込むページのURL">
</iframe>

要はIFRAMEとは?

要はさっきの肝①で書いたようにHTMLタグの一種です。詳しく理解されたい方はmozila docを貼っておきましたので、お読みください。

: インラインフレーム要素 - HTML: HyperText Markup Language | MDN
は HTML の要素で、入れ子になった閲覧コンテキストを表現し、現在の HTML ページに他のページを埋め込むことができます。

seleniumで要素指定するときにiframeがあると?

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