要求:模拟点击下一页,选择显示70/条每页,(抓包不知是否可获得下一页的地址),我的代码如下,运行后获得的html代码仍为第一页,没有翻页。
public class gWebByWebBrowser
{
WebBrowser web;
HtmlElement btnAdd = null;
public gWebByWebBrowser(){
web = new WebBrowser();
}
public string GetHtml(string url, WBrowserPara wBrowserPara){
//web.DocumentCompleted += web_DocumentCompleted;
web.Navigate(url);
while (web.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
eventCounter = 0;
operation();
return web.DocumentText;
}
void operation(){ // 模拟操作
HtmlElementCollection Aresults = web.Document.GetElementsByTagName("a");
foreach (HtmlElement item in Aresults){
if (item.InnerHtml == "下页") { btnAdd = item; }
}
btnAdd.InvokeMember("onclick");
foreach (HtmlElement f in web.Document.GetElementsByTagName("option"))
{
if (f.InnerText == @"显示70条/页")
{
f.InvokeMember("Click");
f.SetAttribute("selected", "selected");
}
}
web.Refresh();
while (web.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
}
}
直接采集接口数据就行了。。
接口在这里。。perpage是每页显示多少条记录的,p是第几页的,直接更换这2个参数就行了
你要是只是想获取数据,建议分析一下网页源码,没必要模拟操作,而且,如果要触发点击事件,貌似可以直接item.Click()