python登陆asp网站页面的实现代码


Posted in Python onJanuary 14, 2015

使用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网站页面

Python 相关文章推荐
Python实现删除Android工程中的冗余字符串
Jan 19 Python
python检测远程udp端口是否打开的方法
Mar 14 Python
简单介绍利用TK在Python下进行GUI编程的教程
Apr 13 Python
Flask Web开发入门之文件上传(八)
Aug 17 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
python队列原理及实现方法示例
Nov 27 Python
python中如何使用insert函数
Jan 09 Python
Python通过VGG16模型实现图像风格转换操作详解
Jan 16 Python
python默认参数调用方法解析
Feb 09 Python
使用Django清空数据库并重新生成
Apr 03 Python
用python实现前向分词最大匹配算法的示例代码
Aug 06 Python
Python生成pdf目录书签的实例方法
Oct 29 Python
Python的面向对象思想分析
Jan 14 #Python
为python设置socket代理的方法
Jan 14 #Python
Python单例模式实例分析
Jan 14 #Python
python文件读写操作与linux shell变量命令交互执行的方法
Jan 14 #Python
Python中使用Tkinter模块创建GUI程序实例
Jan 14 #Python
更改Python命令行交互提示符的方法
Jan 14 #Python
Python的迭代器和生成器使用实例
Jan 14 #Python
You might like
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
动态控制Table的js代码
2007/03/07 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
jQuery监听文件上传实现进度条效果的方法
2016/10/16 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
pandas多级分组实现排序的方法
2018/04/20 Python
详解python中的hashlib模块的使用
2019/04/22 Python
python实现大量图片重命名
2020/03/23 Python
python读取mysql数据绘制条形图
2020/03/25 Python
pycharm解决关闭flask后依旧可以访问服务的问题
2020/04/03 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
酒店个人求职信范文
2014/01/25 职场文书
主要负责人任命书
2014/06/06 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
Html5生成验证码的示例代码
2021/05/10 Javascript
24年收藏2000多部退役军用电台
2022/02/18 无线电
golang操作rocketmq的示例代码
2022/04/06 Golang