Excel教程Excel函数Excel表格制作Excel2010电子表格Excel实用技巧
优采云 发布时间: 2021-06-24 23:20Excel教程Excel函数Excel表格制作Excel2010电子表格Excel实用技巧
组织一些最近的项目。总结几个用到的知识点和代码的关键部分,供大家学习交流。
1、crawler 抓取网页内容信息。可以通过System.Net.WebRequest、webclient等类来处理
2、对于一些动态网页,链接信息是由javascript动态生成的。也可以分析传值方式,把参数带入帖子中(大部分网站参数被统治)。如果还是不行,还可以使用webbrowser控件模拟点击。或者按值传递。
以网站 为例。
部分代码如下:
//使用网页浏览器访问指定网页。地址是网址
private void Navigate(WebBrowser web,String address)
{
if (String.IsNullOrEmpty(address)) return;
if (address.Equals("about:blank")) return;
if (!address.StartsWith("http://")) address = "http://" + address;
试试
{
web.Navigate(new Uri(address));
}
catch (System.UriFormatException)
{
返回;
}
}
因为要抓取网页内容,加载后提交参数,所以需要验证加载完成,即DocumentCompleted。在实际使用过程中,发现一个页面的加载过程中可能有多个DocumentCompleted,所以这里使用+1、-1方法来判断是否加载完成。
首先在formload中绑定网页加载完成事件。
private void getCode3webBrowser_Load(object sender, EventArgs e)
{
string address = "http://www.aslan.com.cn/Code.aspx";
this.Navigate(webBrowser1, address);
webBrowser1.Navigated += new WebBrowserNavigatedEventHandler(webBrowser_Navigated);
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
}
并定义标记计数
int count = 0;
然后在每次导航后给标记+1
private void webBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
count++;
}
在每个 DocumentCompleted 中,都给出了 count-1。最后,当count=0时,表示页面加载完毕。可以进行页面信息处理等操作。
<p> <p> private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
count = count - 1;
string eventTarget = "dg_Code$ctl24$ctl";
if (0 == count && isComplete == false && j