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环境下运用kafka对数据进行实时传输的方法
Dec 27 Python
pandas实现to_sql将DataFrame保存到数据库中
Jul 03 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
django的聚合函数和aggregate、annotate方法使用详解
Jul 23 Python
python实现超市管理系统(后台管理)
Oct 25 Python
Python 限定函数参数的类型及默认值方式
Dec 24 Python
CentOS7下安装python3.6.8的教程详解
Jan 03 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
VScode连接远程服务器上的jupyter notebook的实现
Apr 23 Python
python中有函数重载吗
May 28 Python
Python logging自定义字段输出及打印颜色
Nov 30 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
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
初识javascript 文档碎片
2010/07/13 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
python实现rest请求api示例
2014/04/22 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
Lookfantastic挪威官网:英国知名美妆购物网站
2017/07/26 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
软件设计的目标是什么
2016/12/04 面试题
国贸专业的职业规划范文
2014/01/23 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
财务会计大学生自我评价
2014/04/09 职场文书
法律专业自荐信
2014/06/03 职场文书
小学元宵节活动总结
2015/02/06 职场文书
新娘婚礼致辞
2015/07/27 职场文书
Python办公自动化PPT批量转换操作
2021/09/15 Python
Python代码实现双链表
2022/05/25 Python
Go gRPC进阶教程gRPC转换HTTP
2022/06/16 Golang