C# 使用asp.net web表单从网页中提取文本内容

C# 使用asp.net web表单从网页中提取文本内容,c#,asp.net,webforms,C#,Asp.net,Webforms,我正在尝试将页面加载到may asp.net web表单,并仅从中提取文本,然后将提取的文本显示在Areatext 像这样: 我的代码是: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <

我正在尝试将页面加载到may asp.net web表单,并仅从中提取文本,然后将提取的文本显示在
Areatext

像这样:

我的代码是:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        #form1 {
            height: 500px;
            width: 1199px;
        }
        .auto-style1 {}
        #TextArea1 {
            height: 288px;
            width: 1157px;
        }
    </style>
</head>
<body>

    <form id="form1" runat="server">
        <asp:Button ID="Button1" runat="server"  Text="Clike me" 
                    OnClick="Button1_Click" OnClientClick="aspnetForm.target ='_blank';"        
                    Width="160px" CssClass="auto-style1" Height="32px" />
        <br />
        <br />
        <asp:RadioButtonList ID="RadioButtonList1" runat="server">
            <asp:ListItem>CNN</asp:ListItem>
            <asp:ListItem>BBC</asp:ListItem>
            <asp:ListItem>FOX</asp:ListItem>
        </asp:RadioButtonList>
        <br />
        <br />
        <textarea id="TextArea1" name="S1" runat="server" ></textarea></form>
</body>
</html>
但我有这个错误

 WebBrowser wb = new WebBrowser();
无法实例化ActiveX控件“8856f961-340a-11d0-a96b-00c04fd705a2”,因为当前线程不在单线程单元中


因此,我做错了什么,请提前给予帮助和感谢

我从未尝试在对象引用中使用WebBrowser,但我知道这是一个web表单,意味着您将收到回帖,如果您每次都重新实例化浏览器引用,它将不会像页面对象那样运行。我将只使用Page对象,您可以收集所需的任何控件和方法,同时还可以利用请求/响应命名空间。我还将匹配radiobuttonlist控件,如下面的代码:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack) 
        {
             string url;
             RadioButtonList rdl = new RadioButtonList();
             url = rdl.SelectedItem.Text; 
        }  
    }
当然,您只需从基于标记的RadioButtonList中获取
。SelectedItem.Text
,而不是构建一个

我检查过了,而且似乎
WebBrowser
对象在
System.Windows.Forms
下。根据我的经验,您永远不想在Web表单中使用该库(使用
MsgBox
的糟糕体验)

我将使用上面的示例进行重构

Response.Redirect(url);

希望有帮助

> P>您可能需要考虑使用基于不同的自动化控制的方法,例如WATIN(C.F)或类似HTML敏捷包(C.F)

< P>。下面是一个示例代码,取自:

示例代码显示如何下载网页,您可以尝试以下代码(摘自):

Response.Redirect(url);
var root = doc.DocumentNode;
var sb = new StringBuilder();
foreach (var node in root.DescendantNodesAndSelf())
{
    if (!node.HasChildNodes)
    {
        string text = node.InnerText;
        if (!string.IsNullOrEmpty(text))
            sb.AppendLine(text.Trim());
    }
}
HtmlDocument doc = new HtmlDocument();
 doc.Load("file.htm");
 foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
 {
    HtmlAttribute att = link["href"];
    att.Value = FixLink(att);
 }
 doc.Save("file.htm");