Tom20081 2017-02-12 01:58 采纳率: 100%
浏览 1545
已采纳

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条回答 默认 最新

查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发