我有一个列表Uri,我想要"点击"为了达到这个目的,我试图为每个Uri创建一个新的Web浏览器控件.我为每个Uri创建一个新线程.我遇到的问题是文档在文档之前结束是完全加载的,所以我永远不会使用DocumentComplete事件.我怎么能克服这个?
var item = new ParameterizedThreadStart(ClicIt.Click);
var thread = new Thread(item) {Name = "ClickThread"};
thread.Start(uriItem);
public static void Click(object o)
{
var url = ((UriItem)o);
Console.WriteLine(@"Clicking: " + url.Link);
var clicker = new WebBrowser { ScriptErrorsSuppressed = true };
clicker.DocumentCompleted += BrowseComplete;
if (String.IsNullOrEmpty(url.Link)) return;
if (url.Link.Equals("about:blank")) return;
if (!url.Link.StartsWith("http://") && !url.Link.StartsWith("https://"))
url.Link = "http://" + url.Link;
clicker.Navigate(url.Link);
}
Run Code Online (Sandbox Code Playgroud) 有一个报告网站,我想用C#解析哪些内容.我尝试使用WebClient下载html,但后来我没有得到完整的源代码,因为当我访问网站时大多数是通过js生成的.
我尝试使用WebBrowser,但即使在使用Application.Run()和SetApartmentState(ApartmentState.STA)之后也无法在控制台应用程序中使用它.
有没有其他方法来访问这个生成的HTML?我也看了看mshtml,但无法弄明白.
谢谢
我正在使用c#.我有以下字符串
<li>
<a href="abc">P1</a>
<ul>
<li><a href = "bcd">P11</a></li>
<li><a href = "bcd">P12</a></li>
<li><a href = "bcd">P13</a></li>
<li><a href = "bcd">P14</a></li>
</ul>
</li>
<li>
<a href="abc">P2</a>
<ul>
<li><a href = "bcd">P21</a></li>
<li><a href = "bcd">P22</a></li>
<li><a href = "bcd">P23</a></li>
</ul>
</li>
<li>
<a href="abc">P3</a>
<ul>
<li><a href = "bcd">P31</a></li>
<li><a href = "bcd">P32</a></li>
<li><a href = "bcd">P33</a></li>
<li><a href = "bcd">P34</a></li>
</ul>
</li>
<li>
<a href="abc">P4</a>
<ul>
<li><a href = "bcd">P41</a></li>
<li><a href = "bcd">P42</a></li>
</ul>
</li>
Run Code Online (Sandbox Code Playgroud)
我的目标是从上面的字符串填写以下列表.
List<class1>
Run Code Online (Sandbox Code Playgroud)
class1有两个属性, …