C#采集网页,模拟点击后无法加载新页面

采集该网址:
http://www.iwencai.com/stockpick/search?typed=1&preParams=&ts=1&f=3&qs=pc_%7Esoniu%7Estock%7Estock%7Ehistory%7Equery&selfsectsn=&querytype=&searchfilter=&tid=stockpick&w=%E6%A6%82%E5%BF%B5%E6%9D%BF%E5%9D%97%EF%BC%8C%E5%9F%8E%E5%B8%82

要求:模拟点击下一页,选择显示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();           
    }
}

2个回答

showbo
支付宝加好友偷能量挖 回复Tom20081: 不在单独的js文件连,就是你帖子贴出来的页面的html源代码代码里面的内嵌js代码块里面
2 年多之前 回复
wuwei2_00_8
Tom20081 回复showbo: js 文件中没有搜到token
2 年多之前 回复
wuwei2_00_8
Tom20081 回复showbo: 不好意思再问一下,我将网页全部另存在本地,没有在js文件中找到token,请问具体怎么找呢?
2 年多之前 回复
showbo
支付宝加好友偷能量挖 回复Tom20081: 你先捉去原来的页面获取token,在js代码里面,自己分析获取后替换url中的token,在发送请求就行了
2 年多之前 回复
wuwei2_00_8
Tom20081 token会改变
2 年多之前 回复
wuwei2_00_8
Tom20081 兄弟你的方法很奏效,但这个接口的url会变化,需要抓包获取,使用C#的话用哪种方法比较方便获取这个url呢?
2 年多之前 回复

你要是只是想获取数据,建议分析一下网页源码,没必要模拟操作,而且,如果要触发点击事件,貌似可以直接item.Click()

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!