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; 等到点击的时候,使用自动化移动鼠标点击,然后停止5s,执行一次F5刷新网页,然后在获取网页内的信息。 点击应该有个post数据吧,post获取一下应该OK吧 1. 点击获取的大部分应该是走接口的,可以选择直接抓接口;
2. 如果不走接口的话,那么该内容一定藏在页面的其他地方,可以在元素里找出来
3. 或者使用py或node的一些爬虫框架,自动执行页面的某些事件后,在进行页面内容提取 判断网页加载完成,按钮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");
}
} 一般这种值可能是个隐藏得input先获取页面 再去找
页:
[1]