
No.3ベストアンサー
- 回答日時:
ちょっと認識が間違っています。
> 1. 問題の画面を表示した後、十分待機して次のステートメントで表示したもの print(driver.page_source)
これが、画面に今表示されているページのHTMLです。
> 2. Chromeの右クリックでの[ページのソースを表示]によるもの
これは、最初にWebサーバーから取得したHTMLです。多くのページはその後、JavaScriptが動作してHTML書き換えて、書き換えた結果が 1 のHTMLです。
Seleniumを使ったプログラムの開発は、driver.get(URL)したあとで、一旦プログラムを中断し(デバッガーを使うとか、input("go next") 等を実行して入力待ちで止めるとか)、その時のブラウザ画面で「開発者ツール」を起動して(ChromeだとF12キーを押す)、開発者ツール画面でHTML(概ね上記の1相当)を見てそれを元にコーディングします。
正確に言うと、「画面に今表示されているページのHTML」は、driver.page_sourceのHTMLではなくて、開発者ツールで参照できるHTMLです。driver.page_sourceのHTML、つまり、Seleniumでdriver.find_element~~で見つけられる物は、それからiframeやシャドウDOMの中味を除いた物になります。
画面や開発者ツールの中はあるけど、その瞬間のdriver.page_sourceに無いものは、それらの中にあるタグかも知れないので、その中を探すコードに修正する必要がありますので、その場合は、iframeやシャドウDOMについて調べましょう。
サポートありがとうございます。
初心者の私に貴重な知識を与えて頂きました。
初心者故に回答頂いた内容はまだ良く理解できていません。
単刀直入に質問させて頂きます。
先の2に存在する下記ソースの文字列 "2023年12月11日現在" を1から取得することは可能ですか?
可能であれば、その方法をご教示お願いします。
<table width="600" border="0" cellpadding="2" cellspacing="0">
<tr>
<td align="right"><font size="-1">2023年12月11日現在<br>
<br></font></td>
</tr>
</table>
よろしくお願いします、
No.2
- 回答日時:
こんにちは
事象だけしか情報がないので、原因の特定は難しいと思いますが・・
ありそうなのは、取得したい要素が、あとからスクリプト等で生成されるものである場合、スクリプトの実行完了前に取得しようとすれば、要素は(まだ存在しないので)見つからないことになります。
あるいは、単純にソースの読み込みに時間がかかっているような場合、それを待たなければ同様のことが起こり得ます。
当該ページのソースを確認すれば、どちらのケースの可能性であるかは判断できるでしょう。
以下、ご参考にでもなれば・・
https://www.fenet.jp/dotnet/column/language/7851/
https://blog.ikedaosushi.com/entry/2018/08/08/00 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- Visual Basic(VBA) VBA: HTTPでのスクレイピング 2 2021/12/28 21:14
- Visual Basic(VBA) Edge操作のアプリが例外発生に 1 2023/03/12 21:22
- その他(プログラミング・Web制作) pythonでのカーソル移動がずれる 2 2023/07/30 08:51
- オープンソース Pythonのコードをexe化 1 2023/07/03 08:01
- Visual Basic(VBA) VBAのエラーについて 2 2023/08/02 17:46
- Visual Basic(VBA) excel vbaでselenium basic 3 2022/10/02 12:35
- Chrome(クローム) Webサイトの表示崩れの原因と対策 1 2022/08/01 23:16
- その他(プログラミング・Web制作) TwitterAPIを使用せずに自動ツイートする方法を知りたい。考え方としてはブラウザを擬似操作して 2 2023/02/02 17:16
- ドメイン・サーバー・クラウドサービス 自作サイトをサーバーにアップロードしたのですが… 2 2022/11/08 18:12
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お助けください!VBAのファイル...
-
UserForm1.Showでエラーになり...
-
【VBA】ワークブックを開く時に...
-
VBAでfunctionを利用しようとし...
-
マクロで"#N/A"のエラー行を削...
-
String""から型'Double'への変...
-
【VBAエラー】Nextに対するFor...
-
「実行時エラー '3167' レコー...
-
Excel vbaについての質問
-
インポート時のエラー「データ...
-
VB.net 重複チェックがしたいです
-
実行時エラー 438 の解決策をお...
-
ApplicationとWorksheetFunctio...
-
Nullの使い方が不正ですのエラ...
-
エクセル 足し算引き算で 空...
-
オブジェクト型の変数にフォー...
-
VBA Find でオートメーションエ...
-
マクロOn Error GoTo ErrLabel...
-
VBA データ(特定値)のある最...
-
助けてください
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
ApplicationとWorksheetFunctio...
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
実行時エラー 438 の解決策をお...
-
オブジェクト型の変数にフォー...
-
.VBSだとADODBのプロバイダが見...
-
実行時エラー'-2147467259(8000...
-
【VB.NET】 パワポ操作を非表示で
-
フランスの生年月日(jj/mm/aaaa)
-
【VBAエラー】Nextに対するFor...
おすすめ情報
問題の画面は、その前の画面のボタンのクリックで表示され、前の画面とは別タブに表示されています。
表示画面のHTMLソースの内容とは下記のものです。
1. 問題の画面を表示した後、十分待機して次のステートメントで表示したもの
print(driver.page_source)
2. Chromeの右クリックでの[ページのソースを表示]によるもの
上記の2の内容は、当然表示されている画面のソースですが、1はそれとは全く異なる別ページのものと思われます。
アドバイスにより、[開発者ツール]を少し学習し、今までより踏み込んだ使い方をしてみました。
その結果、幸いに要素を取得することに成功しました。
サポートありがとうございました。