Python

2014-09-23 12 views
7

के अनुरोध मॉड्यूल के साथ ASP.NET वेबसाइट में लॉग इन करने में असमर्थ मैंवेबसाइट Python में requests मॉड्यूल का उपयोग करके ASP.NET वेबसाइट पर लॉग इन करने का प्रयास कर रहा हूं।Python

वेबसाइट पर मैन्युअल रूप से लॉग इन करते समय मैं निम्नलिखित शीर्षलेखों और कुकीज़ देख सकता हूं।

अनुरोध हेडर:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding:gzip,deflate 
Accept-Language:en-US,en;q=0.8 
Cache-Control:max-age=0 
Connection:keep-alive 
Content-Length:810 
Content-Type:application/x-www-form-urlencoded 
Cookie:ASP.NET_SessionId=sfiziz55undlnz452gfc2d55; __utma=120481550.280814175.1411461613.1411461613.1411479534.2; __utmb=120481550.1.10.1411479534; __utmc=120481550; __utmz=120481550.1411461613.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none) 
Host:www11.davidsonsinc.com 
Origin:http://www11.davidsonsinc.com 
Referer:http://www11.davidsonsinc.com/Login/Login.aspx?ReturnUrl=%2fdefault.aspx 
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.103 Safari/537.36 

फॉर्म डेटा:

__EVENTTARGET: 
__EVENTARGUMENT: 
__LASTFOCUS: 
__VIEWSTATE:/wEPDwUKMTY3MDM5MDAxNQ9kFgJmD2QWAgIDD2QWAgIDD2QWAgIBD2QWBAIBD2QWAmYPZBYCAg0PEA8WAh4HQ2hlY2tlZGdkZGRkAgMPDxYCHgdWaXNpYmxlaGRkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBUBjdGwwMCRDb250ZW50UGxhY2VIb2xkZXJOYXZQYW5lJExlZnRTZWN0aW9uJFVzZXJMb2dpbiRSZW1lbWJlck1lsSFPYUYvIbQNBPs/54aHYcx6GyU= 
__VIEWSTATEGENERATOR:1806D926 
__EVENTVALIDATION:/wEWBQLy8oGOCwKanaixDwKPr7TsAQKu3uTtBgKs+sa/CQVDEisOu4Iw1m9stXWgAAz9TWQn 
ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$UserName:Username 
ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$Password:password 
ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$RememberMe:on 
ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$LoginButton:Log In 

अनुरोध कुकीज़

ASP.NET_SessionId: nz452gfc2d55 

रिस्पांस कुकीज़

.ASPXAUTH: 1F5A05237A1AA18795ECA108CE6E70D48FE5CBB5B38D061E0770618F6C069ABA03604335B6209CF8198AD3E98AE934F14056F5C887A92BB099BF38D639A22BC12972DEEE91BCE0BF36239BD1728E228E0E9CA1E5146A6C69E906E177CC8FB27395CE2F56B4013535C62E821384231EF0AD632474D6EBCFCD859882DBE9D420B6A8816BE6 

के बाद स्क्रिप्ट मैं अजगर/Django उपयोग करके वेबसाइटों में लॉग इन करने का उपयोग करें।

import requests 
with requests.Session() as c: 
    url = 'http://www.noobmovies.com/accounts/login/?next=/' 
    USERNAME = 'user name' 
    PASSWORD = 'password' 
    c.get(url) 
    csrftoken = c.cookies['csrftoken'] 
    login_data = dict(csrfmiddlewaretoken=csrftoken, username=USERNAME, password=PASSWORD, next='/') 
    c.post(url, data=login_data, headers={"Referer":"http://www.noobmoviews.com/"}) 
    page = c.get('http://www.noobmovies.com/user/profile/0/') 

    print page.status_code 

लेकिन मुझे नहीं पता कि एएसपी.NET वेबसाइट में लॉग इन कैसे करें। मैं एएसपी.नेट वेबसाइट पर डेटा कैसे पोस्ट करूं?

उत्तर

14
import requests 
from bs4 import BeautifulSoup 

URL="http://www11.davidsonsinc.com/Login/Login.aspx" 
headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"} 

username="username" 
password="password" 

s=requests.Session() 
s.headers.update(headers) 
r=s.get(URL) 
soup=BeautifulSoup(r.content) 

VIEWSTATE=soup.find(id="__VIEWSTATE")['value'] 
VIEWSTATEGENERATOR=soup.find(id="__VIEWSTATEGENERATOR")['value'] 
EVENTVALIDATION=soup.find(id="__EVENTVALIDATION")['value'] 

login_data={"__VIEWSTATE":VIEWSTATE, 
"__VIEWSTATEGENERATOR":VIEWSTATEGENERATOR, 
"__EVENTVALIDATION":EVENTVALIDATION, 
"ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$UserName":username, 
"ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$Password":password, 
"ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$LoginButton":"Log In"} 

r=s.post(URL, data=login_data) 
print r.url 
+0

धन्यवाद मोहसिन, यह वही है जो मैं देख रहा था, यह पूरी तरह से चल रहा है। धन्यवाद एक टन !!! –

+0

:-) मुझे खुशी है कि मैं मदद कर सकता हूं –

3

मैं शुरू में रूप में अच्छी तरह हालांकि मैं ASPX साइट मैं खत्म कर रहा हूँ के साथ इसी तरह के मुद्दों में चल रहा था अनुरोधों + BS4 उपयोग कर रहा था। मुझे robobrowser नामक एक और लाइब्रेरी मिली जो अनुरोध + बीएस 4 को लपेटती है। इसके साथ अब आपको एएसपीएक्स साइटों के साथ बातचीत करते समय मैन्युअल रूप से "__VIEWSTATE" और मित्रों जैसे आइटम सेट करना होगा।

from robobrowser import RoboBrowser 

url = ' http://www11.davidsonsinc.com' 
login_url = url + '/Login/Login.aspx' 

username = "username" 
password = "password" 

browser = RoboBrowser(history=True) 
# This retrieves __VIEWSTATE and friends 
browser.open(login_url) 

signin = browser.get_form(id='aspnetForm') 
signin["ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$UserName"].value = username 
signin["ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$Password"].value = password 
signin["ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$LoginButton"].value = "Log In" 
browser.submit_form(signin) 
print browser.url