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中的字典详细介绍
Sep 18 Python
Python import自定义模块方法
Feb 12 Python
利用Python的装饰器解决Bottle框架中用户验证问题
Apr 24 Python
python写入中英文字符串到文件的方法
May 06 Python
python机器学习理论与实战(四)逻辑回归
Jan 19 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
python 3.6.4 安装配置方法图文教程
Sep 18 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Django关于admin的使用技巧和知识点
Feb 10 Python
python pandas移动窗口函数rolling的用法
Feb 29 Python
Python函数调用追踪实现代码
Nov 27 Python
python flask框架快速入门
May 14 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数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
实例讲解PHP表单验证功能
2019/02/15 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
js对数字的格式化使用说明
2011/01/12 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
vue-cli3 配置开发与测试环境详解
2019/05/17 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
python里大整数相乘相关技巧指南
2014/09/12 Python
Python中的ctime()方法使用教程
2015/05/22 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
Python实现代码统计工具
2019/09/19 Python
Python中six模块基础用法
2019/12/08 Python
python路径的写法及目录的获取方式
2019/12/26 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
django admin 添加自定义链接方式
2020/03/11 Python
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
合作经营协议书范本
2014/04/17 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
2015年材料员工作总结
2015/04/30 职场文书
原告离婚代理词
2015/05/23 职场文书