LoginSignup
1
0

More than 1 year has passed since last update.

【iframe】Noneを返すWebサイト〜スクレイピングの落とし穴〜

Posted at

今回はpython学習で大変お世話になってるはたやす先生のUdemy講座から内容を引用してます。

皆さんはスクレイピングでエラーが出る原因はなんだと思いますか?

タグの指定が間違えてる?find_allの後にforで回してない?

いやいや、なめんなよ:smirk:基礎さえ押さえればスクレイピングなんて楽勝楽勝〜

って思ってました、私。 そして見事に詰むw

どう見てもちゃんとタグは指定してる、コードも間違ってない!なのになんで・・

スクリーンショット 2022-11-27 11.54.55.png

しかもこのNoneを返すサイト、なぜか検証ツールも反応しないんです。

スクリーンショット 2022-11-27 12.00.06.png

なぜか消えてますが画像ではカーソルはサイト上の"会社情報"を指してます。検証ツール上でもdivの会社情報を指してます。
でもなぜかサイト上のカーソルは何も反応は無し・・

スクリーンショット 2022-11-27 12.07.06.png

👆の画像のように普通だったらブラウザ上でもカーソルが反応してタグ情報が表示されるのに・・

そして調べること丸一日、もう自分だけじゃ無理と思いはたやす先生に教えてもらいました。

その正体はHTMLの「iframe」タグ。

なんじゃそれと思いググってみると、

「指定したURL(リンク先ページの内容)をsrcで読み込んで表示するHTMLタグ」
らしいです。

なんともややこしい・・

しかし仕組みさえ分かればこっちのもの。検証ツールをもっと詳しく見ると

<iframe id="pageFrame" src="https://○○○○.com/next-page/?getFromUrl=111111" style="width: 100%; height: 8399px;" frameborder="0">

こんなタグが見つかるはず。あとはrequestとbeautifulsoupでこのsrcのURLにアクセスして通常通りfindかselectをしましょう。
(ここのsrcのURLにアクセスすればちゃんとカーソルが反応する全く同じサイトに飛びます)

んーHTML中々奥深い。

ここで紹介した以外にももっとトリッキーなタグがあるんだろうなぁ・・:scream:
まぁその時はちゃんと調べて解決していきましょ。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0