lzy00 发表于 2022-4-14 14:10

c#获取网内内容,有处数值是必须在网页点击按钮才会显示的,如何用代码解决

本帖最后由 lzy00 于 2022-4-15 09:32 编辑

点击之前点击之后
获取网页部分代码
                Uri uri = new Uri(url);
                HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(uri);
                myReq.UserAgent = "User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705";
                myReq.Accept = "*/*";
                myReq.KeepAlive = true;
                myReq.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
                myReq.Timeout = 15000;
                HttpWebResponse result = (HttpWebResponse)myReq.GetResponse();

                Stream receviceStream = result.GetResponseStream();
                StreamReader readerOfStream = new StreamReader(receviceStream, Encoding.GetEncoding(Code));
                string strHTML = readerOfStream.ReadToEnd();
                readerOfStream.Close();
                receviceStream.Close();
                result.Close();
                return strHTML;

forutry 发表于 2022-4-14 16:22

等到点击的时候,使用自动化移动鼠标点击,然后停止5s,执行一次F5刷新网页,然后在获取网页内的信息。

hackerxj 发表于 2022-4-14 16:36

点击应该有个post数据吧,post获取一下应该OK吧

快乐小风 发表于 2022-4-14 16:43

1. 点击获取的大部分应该是走接口的,可以选择直接抓接口;
2. 如果不走接口的话,那么该内容一定藏在页面的其他地方,可以在元素里找出来
3. 或者使用py或node的一些爬虫框架,自动执行页面的某些事件后,在进行页面内容提取

weikun444 发表于 2022-4-14 16:49

判断网页加载完成,按钮ID找按钮,模拟点击,然后根据元素取相应的内容!

private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // 根据id找到对应的元素
    HtmlElement htmlEle = webBrowser.Document.GetElementById("sign-in");

    if (htmlEle != null)
    {
      // 激活html元素的 click 成员
      htmlEle.InvokeMember("click");
   }
}

你好港屿 发表于 2022-4-14 18:40

一般这种值可能是个隐藏得input先获取页面 再去找
页: [1]
查看完整版本: c#获取网内内容,有处数值是必须在网页点击按钮才会显示的,如何用代码解决