关于python对于aspx网页的post提交
这二天看了一下python,比较这种编程思想和开源。试了一下自己的ASPX想实现一个自动登录!
结果查询了许久没有结果,老是返回到登录页面,后请教单位的大牛讲了一下,原来还是有很多数据要提交。
晚上继续G,终于找到了解决方案。特记录下来,以后备后查!
解决方案一、
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解决方案二
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(第一次写博客,不周之处请大家见谅!)