आप अनुरोध करेंगे कि आप फ़ॉर्म भर चुके हैं। उदाहरण के लिए इसे पोस्ट मानते हुए, आप सही डेटा के साथ एक POST अनुरोध करते हैं। अब यदि आप सीधे उसी पृष्ठ पर लॉगिन नहीं कर सकते हैं जिसे आप स्क्रैप करना चाहते हैं, तो आपको अपने लॉगिन अनुरोध के बाद जो भी कुकी सेट करनी है, उसे ट्रैक करना होगा, और उन्हें अपने स्क्रैपिंग अनुरोध में शामिल करना होगा ताकि आप लॉग इन रह सकें।
ऐसा लगता है:
HttpWebRequest http = WebRequest.Create(url) as HttpWebRequest;
http.KeepAlive = true;
http.Method = "POST";
http.ContentType = "application/x-www-form-urlencoded";
string postData="FormNameForUserId=" + strUserId + "&FormNameForPassword=" + strPassword;
byte[] dataBytes = UTF8Encoding.UTF8.GetBytes(postData);
http.ContentLength = dataBytes.Length;
using (Stream postStream = http.GetRequestStream())
{
postStream.Write(dataBytes, 0, dataBytes.Length);
}
HttpWebResponse httpResponse = http.GetResponse() as HttpWebResponse;
// Probably want to inspect the http.Headers here first
http = WebRequest.Create(url2) as HttpWebRequest;
http.CookieContainer = new CookieContainer();
http.CookieContainer.Add(httpResponse.Cookies);
HttpWebResponse httpResponse2 = http.GetResponse() as HttpWebResponse;
शायद।
धन्यवाद, यह कुछ मैं इस्तेमाल कर सकते हैं, मैं इस सवाल का जवाब स्वीकार करेंगे अगर यह काम करता है जब मैं वापस प्रोग्रामिंग करने के लिए मिल की तरह दिखता है। :-) –
यह काम करता है यदि वेब पेज सादा HTML में है, लेकिन यदि फॉर्म जावास्क्रिप्ट के माध्यम से गतिशील रूप से जेनरेट किया गया है .... क्या यह काम करेगा? – Souper
@ सॉपर शायद नहीं; आप यह जांचना चाहते हैं कि साइन-इन से जिस पृष्ठ पर आप स्क्रैप करना चाहते हैं, उसके अनुरोध क्या होंगे और फिर उन व्यवहारों का निर्माण करें जो उस व्यवहार की नकल करते हैं। – dlamblin