不能在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浏览器调用。在同一线程中,我没有问题调用方法。
您可以试试下面的代码
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); }));