使用python來登錄asp網站和登錄其他網站差不多,只是因為asp頁面在每次請求的時候都要帶上viewstate,因此使用python來登錄的話就多了一個步驟,獲得這個頁面的viewstate之后帶上這個和你要post或get到該頁面的請求數據就好了,下面這段程序是登錄一個asp系統,然后搜索某些數據并將這些數據保存下來.
#coding=utf-8
import urllib2 from bs4 import BeautifulSoup import urllib import cookielib import re import httplib import time
loginUrl="登錄地址"
headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"}
studentCookie = cookielib.CookieJar()
pageOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(studentCookie))
loginPageRequest = urllib2.Request(loginUrl)
loginPageHTML = pageOpener.open(loginPageRequest).read() """
s=requests.Session()
s.headers.update(headers)
r=s.get(loginUrl)
""" print loginPageHTML
soup=BeautifulSoup(loginPageHTML)
__VIEWSTATE=soup.find(id="__VIEWSTATE")['value']
__EVENTVALIDATION=soup.find(id="__EVENTVALIDATION")['value']
print __VIEWSTATE print __EVENTVALIDATION
login_data={
' __EVENTTARGET':'', '__EVENTARGUMENT':'', '__LASTFOCUS':'', '__VIEWSTATE':__VIEWSTATE, '__EVENTVALIDATION':__EVENTVALIDATION, 'ClienScreentHeight':'768', 'TextBoxUserID':'username', 'TextBoxPWD':'password', 'drpLanguage':'zh-CN', 'ButtonConfirm.x':'45', 'ButtonConfirm.y':'64'
}
loginHeader = {
'User-Agent':'sssssssssssssssssssssss'
}
loginData=urllib.urlencode(login_data)
loginRequest = urllib2.Request(loginUrl , loginData , headers)
loginResponse = pageOpener.open(loginRequest)
print loginResponse
theurl='登錄后搜索頁面地址'
mainPageRequest = urllib2.Request(theurl)
mainPageHTML = pageOpener.open(mainPageRequest).read()
soup=BeautifulSoup(mainPageHTML)
__VIEWSTATE=soup.find(id="__VIEWSTATE")['value'] #__EVENTVALIDATION=soup.find(id="__EVENTVALIDATION")['value'] print __VIEWSTATE #print __EVENTVALIDATION
searchdata={
'__VIEWSTATE':__VIEWSTATE,
'__EVENTVALIDATION':'',
'txtCopNO':'', 'txtCAR_NO_S':'', 'drpStatus':'', 'txtHiddenOrOnline':'none', 'txtAuto_id':'', 'drpType':'', 'drpBaseType':'', 'ddlIsStatus':0, 'txtICCard':'', 'txtBILL_NO':'', 'txtGDateTime1':'', 'txtGDateTime2':'', 'drpFromKA':'', 'drpToKA':'', 'btnSearch':'%E6%9F%A5+%E8%AF%A2%28F%29'
}
data2=urllib.urlencode(searchdata)
searchData=urllib.urlencode(searchdata)
searcgRequest=urllib2.Request(theurl , searchData , headers)
searchResponse=pageOpener.open(searcgRequest)
print loginResponse print searchResponse
searchHtml=searchResponse.read()
filename= r'C:\Users\Dell\Desktop\getlogin\file'+time.strftime('%d%H%M',time.localtime(time.time()))+'.html'
file=open(filename,'w') file.write(searchHtml) file.close()
print 'end' #raw_input()
原文:python登陸asp網站頁面
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

