【问题标题】:c# copy html links from webbrowser and write it in textfilec# 从网络浏览器复制html链接并将其写入文本文件
【发布时间】:2014-05-27 13:43:07
【问题描述】:

我想合并从网络浏览器复制特定链接的功能,并在用户单击按钮时将其写入文本文件。请帮帮我,这是我写的函数:

public void grabLink()
        {
            HtmlElementCollection links = webBrowser3.Document.Links ;

            foreach (HtmlElement  link in links)
            {
                if (link.InnerHtml.Contains("register"))
                {
                    using (TextWriter tw = new StreamWriter("link.tnx"))
                    {
                        tw.WriteLine(link.InnerHtml);
                    }
                }

            }
}

 private void button1_Click(object sender, EventArgs e)
        {
            grabLink();
        }

我要复制的链接是这样的

<a target="_blank" title="Accept" href="https://www.google.com/url?q=https%3A%2F%2Fregister.mig33.co…gmail.com&sa=D&sntz=1&usg=AFQjCNE1sLh2qmw-nEfj3exP8au_3dw3Kg">

    Sign Up Now For Free.

</a>

建议和建议将不胜感激。

【问题讨论】:

  • 您能描述一下您当前的功能有什么问题吗?
  • 嗨@will anderson,当单击按钮并执行grablink()函数时,创建的文本文件显示“System.Windows.Forms.HtmlElement”而不是链接。我只是想复制浏览器中的链接并将其保存在文本文件中
  • 我想从浏览器复制的 html 链接是链接 eragenx.com/referral/hhghgjhh89765"></a>
  • 感谢您的澄清。试试tw.WriteLine(link.InnerHtml);
  • 我更新了代码但它不起作用:(

标签: c# .net hyperlink browser web-scraping


【解决方案1】:

发布我们的评论讨论作为答案,以防它对其他人有用。

您需要使用 link.OuterHtml 来捕获整个输出。您还匹配了错误的字符串(根据您的链接示例)。

您还每次通过循环创建一个新的 StreamWriter。这将导致您仅输出页面上的最后一个链接。试试这个:

public void grabLink()
{
    HtmlElementCollection links = webBrowser3.Document.Links ;

    using (TextWriter tw = new StreamWriter("link.tnx"))
    {
        foreach (HtmlElement  link in links)
        {
            if (link.InnerHtml.Contains("Sign Up"))
            {
                tw.WriteLine(link.OuterHtml);
            }
        }
    }
}

【讨论】:

  • 知道了,现在一切正常。多谢。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-19
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多