采集网址: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;
}