C# 采集网页,可能需先登陆

采集网址:https://www.taoguba.com.cn/moreTopic?userID=252069

需给出demo,测试通过后马上采纳
哪位能帮忙看看呀

思路就是抓包,然后分析有什么cookie带上,你也可以自己试试看。
你的用户名密码是什么,我给你写了邮件,你回一下。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;

namespace Q750623
{
    class Program
    {
        public static string PostRequest(string postData, string requestUrlString, CookieContainer cookie)
        {
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] data = encoding.GetBytes(postData);
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(requestUrlString);
            myRequest.Method = "POST";
            myRequest.ContentType = "application/x-www-form-urlencoded";
            myRequest.ContentLength = data.Length;
            myRequest.CookieContainer = cookie;
            Stream newStream = myRequest.GetRequestStream();
            newStream.Write(data, 0, data.Length);
            newStream.Close();
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
            return reader.ReadToEnd();
        }

        public static string GetRequest(string requestUrlString, CookieContainer cookie)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUrlString);

            request.Method = "GET";
            request.CookieContainer = cookie;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            return reader.ReadToEnd();
        }

        public static string PostLogin(string postData, string requestUrlString, ref CookieContainer cookie)
        {
            byte[] data = Encoding.UTF8.GetBytes(postData);
            //向服务端请求
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(requestUrlString);
            myRequest.Method = "POST";
            myRequest.ContentType = "application/x-www-form-urlencoded";
            myRequest.ContentLength = data.Length;
            myRequest.CookieContainer = new CookieContainer();
            Stream newStream = myRequest.GetRequestStream();
            newStream.Write(data, 0, data.Length);
            newStream.Close();
            //将请求的结果发送给客户端(界面、应用)
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
            cookie.Add(myResponse.Cookies);
            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
            return reader.ReadToEnd();
        }

        static void Main(string[] args)
        {
            CookieContainer cookie = new CookieContainer();
            PostRequest("userName=用户名&password=密码&checkCode=&save=Y&url=https%3A%2F%2Fwww.taoguba.com.cn%2FmoreTopic%3FuserID%3D252069", "https://sso.taoguba.com.cn/web/login/submit", cookie);
            string s = GetRequest("https://www.taoguba.com.cn/moreTopic?userID=252069", cookie);
            Console.WriteLine(s);
        }
    }
}

这个 很容易啊 找到 用户名框 获取焦点 sendkeys 发送 用户名 然后 在 发送 {TAB} 到密码框 senkeys 密码 如果sendkeys没用 就用 winring0 (这个一般用来输入银行的安全控件密码) 在然后 发送 3次 {TAB} 或者 找到 login 的按钮 元素 click 或者 {ENTER} 解决

你先看看下面的,能否解决你的问题,不行的话,再问。
https://www.cnblogs.com/xinjian/p/6343367.html
https://blog.csdn.net/u010593753/article/details/83785383
https://www.cnblogs.com/jjg0519/p/6702747.html
https://blog.csdn.net/yinbucheng/article/details/64457095

代码案例:
https://github.com/search?l=C%23&q=%E6%A8%A1%E6%8B%9F%E7%99%BB%E5%BD%95&type=Repositories
先看看吧,能否解决问题

System.Net.CookieContainer cc = new System.Net.CookieContainer();
string t = @"password=&save=Y&url=https://www.taoguba.com.cn/index?blockID=1&userName=";
oGatherWeb.HttpPost(@"https://www.taoguba.com.cn/index?blockID=1",t, ref cc);
oGatherWeb.HttpGet(@"https://www.taoguba.com.cn/blog/2790539", null, cc);
public string HttpPost(string Url, string postDataStr, ref CookieContainer cookie)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";

        byte[] postData = Encoding.UTF8.GetBytes(postDataStr);
        request.ContentLength = postData.Length;
        request.CookieContainer = cookie;
        Stream myRequestStream = request.GetRequestStream();
        myRequestStream.Write(postData, 0, postData.Length);
        myRequestStream.Close();

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        response.Cookies = cookie.GetCookies(response.ResponseUri);
        Stream myResponseStream = response.GetResponseStream();
        StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
        string retString = myStreamReader.ReadToEnd();
        myStreamReader.Close();
        myResponseStream.Close();

        return retString;
    }
    public string HttpGet(string Url, string postDataStr, CookieContainer cookie)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr);
        request.Method = "GET";
        request.ContentType = "text/html;charset=UTF-8";
        request.CookieContainer = cookie;

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream myResponseStream = response.GetResponseStream();
        StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
        string retString = myStreamReader.ReadToEnd();
        myStreamReader.Close();
        myResponseStream.Close();

        return retString;
    }