C# 在採集資料時的驗證與登入處理
首先開啟網站,檢視原始檔,找到他的登入表單部分。
比如:
使用者名稱: | maxlength="40" size="23" name="username" id="username" /> |
密 碼: | maxlength="40" size="23" name="passwd" type="password" id="passwd" /> |
從以上表單可以看出,表單提交的方法是:POST,提交至loginMain.jsp處理,共有兩個表單項即:username、passwd
下面是C#模仿登入程式:Login.cs
using System;
using System.Data;
using System.Net;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
///
/// 登入網站並獲取Cookies
///
/// 成功登入的Cookie資訊
public static CookieContainer Get_Login()
{
CookieContainer cc = new CookieContainer();
string FormURL="http://blog.hnce.net/loginMain.jsp"; //處理表單的絕對URL地址
string FormData = "username=slick&passwd=hedy12345"; //表單需要提交的引數,注意改為你已註冊的資訊。
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(FormData);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(FormURL);
request.Method = "POST"; //資料提交方式
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
//模擬一個UserAgent
Stream newStream = request.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
request.CookieContainer = cc;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
cc.Add(response.Cookies);
Stream stream = response.GetResponseStream();
string WebContent = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd();
return cc;
}
using System.Data;
using System.Net;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
///
/// 登入網站並獲取Cookies
///
///
public static CookieContainer Get_Login()
{
CookieContainer cc = new CookieContainer();
string FormURL="http://blog.hnce.net/loginMain.jsp"; //處理表單的絕對URL地址
string FormData = "username=slick&passwd=hedy12345"; //表單需要提交的引數,注意改為你已註冊的資訊。
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(FormData);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(FormURL);
request.Method = "POST"; //資料提交方式
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
//模擬一個UserAgent
Stream newStream = request.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
request.CookieContainer = cc;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
cc.Add(response.Cookies);
Stream stream = response.GetResponseStream();
string WebContent = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd();
return cc;
}
呼叫以上的方法來獲取需要登入才能檢視的內容。
CookieContainer cc = new CookieContainer();
cc = Login.Get_Login(); //獲取登入Cookies
string PhotoClassURL = "http://blog.hnce.net/xxx.jsp";
HttpWebRequest Myrequest = (HttpWebRequest)WebRequest.Create(PhotoClassURL);
Myrequest.CookieContainer = cc;
HttpWebResponse Myresponse = (HttpWebResponse)Myrequest.GetResponse();
cc.Add(Myresponse.Cookies);
Stream Mystream = Myresponse.GetResponseStream();
string sHtml = new StreamReader(Mystream, System.Text.Encoding.Default).ReadToEnd();
cc = Login.Get_Login(); //獲取登入Cookies
string PhotoClassURL = "http://blog.hnce.net/xxx.jsp";
HttpWebRequest Myrequest = (HttpWebRequest)WebRequest.Create(PhotoClassURL);
Myrequest.CookieContainer = cc;
HttpWebResponse Myresponse = (HttpWebResponse)Myrequest.GetResponse();
cc.Add(Myresponse.Cookies);
Stream Mystream = Myresponse.GetResponseStream();
string sHtml = new StreamReader(Mystream, System.Text.Encoding.Default).ReadToEnd();
sHtml即為你登入之後看到的內容。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-541445/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HTML_登入時的JS驗證方法HTMLJS
- Golddata如何採集需要登入/會話的網站資料?Go會話網站
- Python資料科學(五) 資料處理和資料採集Python資料科學
- js登入與註冊驗證JS
- 資料採集實驗四
- 拿到登入資料以後如何處理?
- 淺析NI LabVIEW資料採集與處理訊號的10大優勢View
- Spark在處理資料的時候,會將資料都載入到記憶體再做處理嗎?Spark記憶體
- 數字孿生汙水處理廠 助力資料採集視覺化處理視覺化
- 資料採集,微軟控制元件分頁問題的處理微軟控制元件
- Codeigniter處理使用者登入驗證後URL跳轉
- app直播原始碼,登入時輸入驗證碼、簡訊驗證身份APP原始碼
- 登入驗證判斷,獲取後臺資料
- 登入介面:從資料庫中獲取資訊驗證登入(與註冊介面相聯絡)資料庫
- 河北穩控科技振弦採集儀在岩土工程中的資料採集與分析
- 登入驗證碼生成kaptcha(輸入驗證碼)APT
- 岩土工程監測中振弦採集儀資料處理與解讀的挑戰與方法
- MySQL登入驗證方式MySql
- JS登入驗證nullJSNull
- python驗證登入Python
- Java 自定義註解在登入驗證的應用Java
- Oracle資料倉儲的實時資料採集XSOracle
- 聊聊Oracle的OS驗證登入Oracle
- 多程序協同的實時資料採集與共享系統
- C# 優雅的處理TCP資料(心跳,超時,粘包斷包,SSL加密 ,資料處理等)C#TCP加密
- 在struts2框架中實現手動處理輸入驗證框架
- 汙水處理自動化裝置資料採集與遠端監控解決方案
- django與小程式實現登入驗證功能Django
- 自動化測試時對驗證碼的處理
- 在 Laravel 中處理請求驗證的智慧方法Laravel
- 聊天平臺原始碼,登入時拼圖驗證原始碼
- 使用 JWT 時,新增自定義資料並在登陸時校驗JWT
- 資料採集與融合技術實驗課程作業一
- 資料採集與融合技術實驗課程作業二
- Laravel- Auth 登入驗證Laravel
- ASP.NET登入驗證ASP.NET
- GitHub--oauth驗證登入GithubOAuth
- Django 使用LDAP驗證登入DjangoLDA