DOBON.NETプログラミング道掲示板
(現在 過去ログ5 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■34855 / inTopicNo.1)  WebView2でJavaScriptの実行の終了イベント
  
□投稿者/ Wan 一般人(30回)-(2021/08/02(Mon) 18:55:54)
  • アイコン環境/言語:[Windows10 VisualStudio2019 VB.net WindowsForm] 
    分類:[.NET] 

    WebView2で、https://minkabu.jp/screening/theme/popular_rankingを表示させて
    ボタン1を連打すると、順位957まで表示されます。
    
    この連打と、もうこれ以上「もっと見る」が存在しないことの検出方法が分かりません。どなたか?詳しい方イラッシャイましたら、教えて頂けないでしょうか?
    
    Private Async Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Await WebView21.ExecuteScriptAsync("document.querySelector('#contents > article > div.md_mtab_box.md_box.mb20 > div.md_cssBtn.theme_normal.size_m.js_more_theme_rankings').click();")
    End Sub
    
    

引用返信 削除キー/
■34856 / inTopicNo.2)  Re[1]: WebView2でJavaScriptの実行の終了イベント
□投稿者/ 魔界の仮面弁士 大御所(1380回)-(2021/08/02(Mon) 20:38:21)
  • アイコン2021/08/03(Tue) 08:47:09 編集(投稿者)

    No34855に返信(Wanさんの記事)
    > ボタン1を連打すると、順位957まで表示されます。
    「ボタン1」とは何のことですか?
    「Button2」とは違うのですよね?


    また、表示が目的ではなく、データの収集のみが必要な場合は、
    WebView2 を介さず、
    https://minkabu.jp/screening/theme/popular_ranking?page=1&q=
    https://minkabu.jp/screening/theme/popular_ranking?page=5&q=
    https://minkabu.jp/screening/theme/popular_ranking?page=48&q=
    などの URL を直接 WebRequest 等で実行する道もあるかと思います。

    たとえば VB を使わずとも、コマンドプロンプトから cUrl コマンドを用いて
    「curl -I "https://minkabu.jp/screening/theme/popular_ranking?page=5&q="」
    と入力して HEAD リクエストを投げた場合、
     HTTP/1.1 200 OK
     Content-Length: 18823
    と表示されますが、
    「curl -I "https://minkabu.jp/screening/theme/popular_ranking?page=50&q="」
    をリクエストした場合には、
     HTTP/1.1 200 OK
     Content-Length: 2
    になることから、データが終端に達したことが判断できます。

    データの取得が目的ではなく、表示が必要なのであれば、WebView2 の方が
    向いていますが、そうした行為が利用規約 - 第7条(禁止事項)の 18, 19, 22 等に
    抵触する場合は、WebView2 であれ WebRequest であれ規約的に NG となるでしょう。
    https://info.minkabu.jp/terms/
引用返信 削除キー/
■34857 / inTopicNo.3)  Re[2]: WebView2でJavaScriptの実行の終了イベント
□投稿者/ Wan 一般人(31回)-(2021/08/03(Tue) 08:43:21)
  • アイコン早速のご返事ありがとうございます。

    ボタン1、2は、WevView2に関するコードも載せた方がいいのかな?と思い質問用にコードを触った残骸です。

    ?page=1&q=をどのようにして見つけるのか?を教えて頂けると凄く助かります。
    やはり、JavaScriptをデバッグモードで追跡して、読み込んでいる部分を特定するのでしょうか?
引用返信 削除キー/
■34858 / inTopicNo.4)  Re[3]: WebView2でJavaScriptの実行の終了イベント
□投稿者/ 魔界の仮面弁士 大御所(1381回)-(2021/08/03(Tue) 09:17:27)
  • アイコン2021/08/04(Wed) 08:15:43 編集(投稿者)

    No34857に返信(Wanさんの記事)
    > ボタン1、2は、WevView2に関するコードも載せた方がいいのかな?と思い質問用にコードを触った残骸です。

    いやいや。コードを提示頂いたのは Button2 だけですよね?

    WevView2 というのは WebView2 の書き間違いだとして
    "ボタン1"
    "ボタン1"
    "ボタン2"
    というのは、それぞれ何をするものなのでしょうか?
    それが分からないことには、「この連打」と言われても…。


    > ?page=1&q=をどのようにして見つけるのか?を教えて頂けると凄く助かります。

    Chrome や Edge で該当ページを表示したら、Ctrl+Shift+I で開発者ツールを起動。

    そのウィンドウの [ネットワーク](Edge) / [Network](Chrome) タブをクリックして
    フィルター条件が [すべて](Edge) / [All](Chrome) になっていることを確認し、
    後は普通に操作していくだけです。

    要求された URL が列挙されるので、その要求の一つをクリックすると、
    やり取りの内容が表示されるので、[回答](Edge) / [Response](Chrome) や
    [ヘッダー](Edge) / [Headers](Chrome) を見ていけば追跡できます。


    ただ、以前( No34801 ) にも指摘した通り、非公認プログラムによる
    収集行為(スクレイピング)が制限されているという事情から、
    当方からは、この手の質問に対しては回答を控えています。
    (質問内容が汎用的な範囲に限ったものなら、お答えできるかと思いますが…)


    もしも株式情報収集が目的の場合には、プログラムからの取得を
    前提とした API 基盤が正式に公開されているものを契約して
    利用することを検討してみてください。
    https://kabu.com/api/kabucom_api.html
    https://kabu.com/company/pressrelease/20200819_1.html
引用返信 削除キー/
■34859 / inTopicNo.5)  Re[4]: WebView2でJavaScriptの実行の終了イベント
□投稿者/ wan 一般人(1回)-(2021/08/03(Tue) 16:18:19)
  • アイコンご迷惑をおかけしてすみませんでした!
    大変助かりました!
解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -