
VB6でWebブラウザを使わず(つまりIE.Navigateをぜず)に、
Web画面の文字を取得したいのですが、
どのようなコードを書けばよいでしょうか。
ひとまずxmlHTTP オブジェクトをクリエイトしての文字列取得には成功したのですが、
こちらは xmlHTTP.Open "GET", "取得したいURL" と言う命令の方法になっており、
この方法だと、Web画面の一部の文字をクリックすることで、
別画面としてポップアップされる子画面の文字は取得が無理そうでした。
それは子画面が、"取得したいURL"ではなく別ものになるからです。
では 子画面のURLはわかるので Open "GET", "子画面のURL"
とするといけそうですが、親画面から起動した子画面でないと、
命令を認識しないと言う制約があるようでした。
別な表現をしますと、欲しい文字が子画面の文字なのですが、
別のURLとなっている為に取得できず、では、
xmlHTTP.Open "GET", "子画面のURL" としても、
親画面から何かを継続して表示したものでなければ、取得できない構造でした。
これはVB6のインターネットコントロールを使っても同様です。
Web画面のタイトル部分ならば、
GetWindowTextと言うAPI関数で取得できたのですが、
メイン画面から別に起動する子画面の全ての文字取得は、
実装ができませんでした。実装できる関数に心当たりはありませんか?
かくなる上はセンドキーで、Ctrl+A と Ctrl+C を送るのですが、
常にターゲットの画面にフォーカスを与えなくてはならず、
他のアプリの画面が使えなくなってしまいます。
VBドットネットであればこれらは解決できるでしょうか。
ドットネットを使ってもメインのURL画面から別URLで開く、
子画面の文字列取得は難しいように思っています。
取得のためのAPI関数が分かれば一番良いのですが、
アドバイスの程、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
子画面の表示をする様にどの様に HTTP 送受信を行っているか、
実際にブラウザを操作して通信内容を監視しましょう。
参考)
https://firefox-source-docs.mozilla.org/devtools …
https://developer.chrome.com/docs/devtools/netwo …
URL だけではなく
* HTTP 要求ヘッダ部
* POST 送信部
あたりに「何かを継続」する情報が入っているかと推測します。
例1)
親画面 URL から開かれたと明示しないとエラー処理
https://developer.mozilla.org/ja/docs/Web/HTTP/H …
例2)
親画面で生成したセッション ID を継続しないとエラー処理
https://developer.mozilla.org/ja/docs/Web/HTTP/C …
何かが判明できれば、あとは xmlHTTP で再現しましょう。
やはり何かを継続する情報・・・があるんですね。色々調べましたが3日間では解決しませんでした。今後も継続して調べて行きます。アドバイス真にありがとうございました
No.2
- 回答日時:
Cookie情報あたりだけの問題ならWinHttp.WinHttpRequest を利用するとできるそうですよ。
https://stackoverflow.com/questions/39709562/how …
✔がついてる回答のやつです。
サーバーアクセスによって何らかの正当性情報が送られていて、外部から制御しようがないと、ちょっとできませんね。
スクレイピングするにあたって、Chromeなどのデベロッパーツールを利用してどのようなネットワークアクセスが行われているのかを把握する必要があります。
それを理解した上でPostmanなどのツールによって試して、求める結果を得ることができれば成功ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba textboxへの入力について教...
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
Vba FileSystemObject オブジェ...
-
複数のExcelファイルをマージす...
-
【マクロ】並び替えの範囲が、...
-
エクセルのVBAコードと数式につ...
-
【マクロ】値を渡されたプロシ...
-
VBAでユーザーフォームを指定回...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
Web画面の文字をVB6で取得したい
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
エクセルのマクロについて教え...
-
エクセルの改行について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba Array関数について教えてく...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】シートの変数へ入れ...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【マクロ】並び替えの範囲が、...
-
Vba セルの4辺について罫線が有...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
VBAでユーザーフォームを指定回...
-
【マクロ】開いているブックの...
-
エクセルの改行について
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
-
ワードの図形にマクロを登録で...
-
VBAの「To」という語句について
-
【マクロ】変数を使った、文字...
おすすめ情報