不能在c#中使用web浏览器提取超链接

本文关键字:web 浏览器 提取 超链接 不能 | 更新日期: 2023-09-27 18:11:39

我在尝试从web文档中提取超链接时遇到了问题!

我尝试使用的方法如下所示:

HtmlElementCollection ht = wb.Document.Links;
foreach (HtmlElement item in ht)
{
    if (item.GetAttribute("href").Contains("name"))
    {
        linkList.Add(item.GetAttribute("href"));
    }
}

当执行这段代码时,我得到错误"指定的强制转换是无效的。"我想问题是在事实上,该方法执行这段代码是在一个单独的线程比web浏览器调用。在同一线程中,我没有问题调用方法。

不能在c#中使用web浏览器提取超链接

您可以试试下面的代码

        HtmlElementCollection hc = webBrowser1.Document.GetElementsByTagName("a");
        for (int i = 0; i < hc.Count; i++)
        {
            if (hc[i].GetAttribute("href") == "name")
                listBox1.Items.Add(hc[i].InnerHtml);// Or InnerText
        }

我发现的解决方案是在单独的方法中放置"链接获取代码"并调用该方法,在主线程上(浏览器正在运行的地方)。

BeginInvoke(new MethodInvoker(delegate() { getUsers(webBrowser1, linkList); }));