• ベストアンサー

WebBrowser内の特定の文字列が入ったリンクをクリックしたい

mo_guの回答

  • ベストアンサー
  • mo_gu
  • ベストアンサー率51% (56/109)
回答No.1

正規表現を使ったほうがいいです。 VB2003のコードなので参考程度で Dim hogeRegex As Regex = New Regex( _ "<a href=""(?<URL>.*?)""> 続きはこちら</a>" _ , RegexOptions.IgnoreCase) Dim hogeMatch As Match = hogeRegex.Match(WebBrowser.Document.Body.InnerText) Dim strUrl as string if hogeMatch.Success then strUrl = hogeMatch.Groups("URL").value( end if WebBrowser.Navigate(strUrl)

metal3100c
質問者

お礼

なんとか思うような操作ができるようになりました!! 「System.Text.RegularExpressions」の件については変なこと書いてしまいすみません。 先頭に「Imports System.Text.RegularExpressions」と記述すればしっかり動作していました♪ ありがとうございました。 今後とも宜しくお願いいたします。

metal3100c
質問者

補足

ありがとうございます!! さっそくご提示いただいたコードを使用させていただこうと思い、 「System.Text.RegularExpressions」が必要とのことでを参照しようとしたのですが見当たりません。 「Imports System.Text.RegularExpressions」と記述すれば、それで参照しているということになるのでしょうか? 先頭に「Imports System.Text.RegularExpressions」と記述すれば、ご提示いただいたコードは何事もなくコンパイルされるのですが、反応している気配がないのです。

関連するQ&A

  • webbrowserにappendChildでyahooへのリンクを追加させるには?

    お世話になります。 以下のvb6のコードを見ていただきたいですが bodyタグの中にh1タグしかない簡単なページに <a href="http://www.yahoo.co.jp">ヤフーへ</a> というaタグをウェブブラウザに表示させた際に追加させたいと 思っています。 その際、href属性とhttp://www.yahoo.co.jpという値を つけくわえるコードがわかりません。 {vb.netだと elem.SetAttribute("HREF", http://www.yahoo.co.jp) で記述できるみたいですが、vb6だとコンパイルエラーがでてしまいます} どのようにコーディングすればよろしいでしょうか? 教えてください。お願い致します。 Private Sub Command1_Click() WebBrowser1.Navigate ("http://hoho.hiho.jp/") Do While WebBrowser1.Busy = True '何もしないループ(笑) DoEvents Loop Start = Timer Do While Timer - Start < 2 DoEvents Loop Dim elm As IHTMLElement Set elem = WebBrowser1.Document.createElement("A") elem.innerText = "ヤフーへ" WebBrowser1.Document.body.appendChild (elem) End Sub

  • name テキスト 画像名等が無いリンクをクリック

    VBで特定のリンクをクリックしたく様々なソースを 見て似たような記述は数多く見かけたのですが、 私のクリックしたいリンクが特殊でどうもうまく クリック出来ません。 ■Visual Studio、Windowsフォームアプリケーション利用 ■クリックしたいリンクについて ・<li class="menu_cate"><a href="new.html" title="NEWページ"></a></li> 「リンク詳細」 リンク先は画像となっており、画像名がありません。 li class、a href それぞれの値(menu_cate、new.html)は、共にページ内では1つだけです。 上記のリンクをクリックしたいので、「menu_cate」、「new.html」、「NEWページ」のいずれかを 検知してクリックをしたいと思い下記を記述してみたのですがうまくいきません。 是非どなたかご教授くださいますようお願い致します。 Dim Element As HtmlElement = Nothing For Each Element In WebBrowser1.Document.All.GetElementsByName("A") If Element.InnerText = "NEWページ" Then Element.InvokeMember("Click") 'クリックする Exit For End If Next ※Element.InnerTextの部分は色々変えてみたのですが、 リンクできませんでした。

  • vb2005 webbrowserでリンクをクリックした後の表示待ちの方法

    VB2005を勉強中の者です。 WebBrowser1.Navigateを使ってwebページを開いた際は下記while文での表示待ちが機能するのですが、ページ表示後、さらにInvokeMemberを使って先のページにクリックで進んだ後では同一の表示待ち部分がうまく機能せずにそのまま次の処理へと進んでしまいいます。 どこに問題があるのか分からず困っております。どなたか助けていただけませんでしょうか? WebBrowser1.Navigate("https://yahoo.co.jp") '↓ここは機能します While WebBrowser1.IsBusy Or WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Application.DoEvents() End While WebBrowser1.Document.GetElementsByTagName("a").Item(15).InvokeMember("click") '↓これが機能しなくて困っています! While WebBrowser1.IsBusy Or WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Application.DoEvents() End While '↓目的 TextBox1.Text = WebBrowser1.Document.Body.InnerText

  • htmlから特定の文字を取得するには

    VB2005初心者です webbrowserコントロールで表示させたwebページのソースの中にある 特定の文字を取得したいんですけど 例えば <a href="http://〇〇〇〇〇〇〇〇〇〇/〇〇/〇〇/△△△△△△△">△△△△△△△</a> <a href="http://〇〇〇〇〇〇〇〇〇〇/〇〇/〇〇/□□□□□□□">□□□□□□□</a> というhtmlの中から △の文字列と□の文字列だけテキストボックスに表示をさせたいのですが どうすればよいのでしょうか? △はTextBox1 □はTextBox2 の様な感じにしたいです 正規表現やInStr関数など試してみたのですがうまくいきません どなたかご教授お願いしたします ソースなど記述して頂けると助かります

  • WebBrowserに表示されているページのソースの取得方法

    RichTextBox1.Text =WebBrowser1.Document.body.innertext とすれば表示されている文字は取得できるのですがタグ付きのソースは 取得できません。 webBrowserコントロールに表示されている文字だけでなくタグもいっしょに 取得するにはどうすればよいのでしょうか

  • WebBrowserコントロール(続き)

    昨日質問したものです。(VB6.0) 出来たと思ったらエラーが出てやっぱり出来ませんでした。 もう3時間挑戦してますがダメです。 例えば a = "<html><body>あいうえおかきく</body></html>" と入ってる場合 コマンドをクリックすれば WebBrowserにaを表示する方法なのですが、、 Private Sub Command1_Click() WebBrowser1.Navigate2 "about:blank" WebBrowser1.Document.Body.Innerhtml = a End Sub これだとエラーが出ます。 何がいけないんでしょう(T_T;;

  • VB2005のWebbrowserでSubmit

    VB初心者です。 Webbrowserで、Submitを押して自動ログインしたいと思います。 ネットで色々調べてみると、 WebBrowser1.Document.All.GetElementsByName(TextBox2.Text)(0).InnerText = TextBox4.Text WebBrowser1.Document.All.GetElementsByName(TextBox3.Text)(0).InnerText = TextBox5.Text WebBrowser1.Document.Forms(0).InvokeMember("submit") で、実行可能というのがありました。 IDとパスワードの入力はできたのですが。(フォーム上で、TextBoxで入力しての話)Submitが実行されません。 ローカルウィンドーで見ても、よく判らないのですが、何をどのように調べれば、実行可能であるか?どうか?判るのでしょうか? どなたか?詳しい方宜しくお願いします。

  • クリック操作で、サイトの文字の大きさを変えたいのですが。

    クリック操作で、サイトの文字の大きさを変えたいのですが。 似たような質問の回答を見つけ、以下を試してみました。↓ <a href="Javascript:void(document.body.style.fontSize='200%')">大</a> <a href="Javascript:void(document.body.style.fontSize='150%')">中</a> <a href="Javascript:void(document.body.style.fontSize='100%')">小</a> ああああ これはうまくいったのですが、リンクさせると元に戻ってしまい、 ページが変わるたびに、また操作しなければなりません。 このサイトのように http://www.pref.yamanashi.jp/index.html 一度クリックすれば、サイト全体に引き継ぐようにしたいのですが どのようにすればよいのでしょうか? よろしくお願いいたします。

  • Aタグを文字ではなくタグとして認識させたい…

    http://okweb.jp/kotaeru.php3?q=1422320でリンクをクリックすると押せなくなる処理を作りました。 しかし新たな問題が… 以下はソースです。 function linkcontrol(linkno) {  switch(linkno){   case 1:    slink1.innerText ='LINK1';    slink2.innerText ='<a href="javascript:linkcontrol(2)">LINK2</a>';    slink3.innerText ='<a href="javascript:linkcontrol(3)">LINK3</a>';    break;   case 2:    slink1.innerText ='<a href="javascript:linkcontrol(1)">LINK1</a>';    slink2.innerText ='LINK2';    slink3.innerText ='<a href="javascript:linkcontrol(3)">LINK3</a>';    break;   case 3:    slink1.innerText ='<a href="javascript:linkcontrol(1)">LINK1</a>';    slink2.innerText ='<a href="javascript:linkcontrol(2)">LINK2</a>';    slink3.innerText ='LINK3';    break;  } } //BODY部 <span id="slink1"><a href="javascript:linkcontrol(1)">LINK1</a></span> <span id="slink2"><a href="javascript:linkcontrol(2)">LINK2</a></span> <span id="slink3"><a href="javascript:linkcontrol(3)">LINK3</a></span> 上記の処理だと、リンクはクリックできなくなったのですが、他のリンクがリンクにならず文字で<a href~と書かれてしまいます。 これをきちんと文字ではなくタグとして認識させるには、どのような修正をすれば良いのでしょうか。 アドバイスお願いします。 ※そもそもこのソースはあまりよろしくない書き方のような気もします。 ※もしもっと簡単に行える書き方がありましたらそちらも併せてアドバイスをお願いします。

  • WebBrowserで特定の場所をクリック

    WebBrowserで表示されているページで特定の場所をクリックしたいのですが、対象となるページはswfになります。 座標自体は毎回変わることはありません。 しかし、もうひとつ問題がありクリックしたい部分はGUI上(ユーザーが見れない範囲にあります)。 ブラウザのsizeを調節してswfを特定の範囲だけ見れるようにしています(添付参照)。 そこのボタンをクリックするにはどうすればよろしいでしょうか?質問が複雑になってしまいましたが、回答お願いします。 またVB2005,2008両回答受け付けています(2008を推薦しています)。