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 相关文章推荐
Python2.X/Python3.X中urllib库区别讲解
Dec 19 Python
python实现学生信息管理系统
Apr 05 Python
python使用rpc框架gRPC的方法
Aug 24 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
django将网络中的图片,保存成model中的ImageField的实例
Aug 07 Python
python实现树的深度优先遍历与广度优先遍历详解
Oct 26 Python
Django对接支付宝实现支付宝充值金币功能示例
Dec 17 Python
解决Pycharm的项目目录突然消失的问题
Jan 20 Python
PyQt5实现简单的计算器
May 30 Python
Python引入多个模块及包的概念过程解析
Sep 21 Python
python 如何用terminal输入参数
May 25 Python
详解python的异常捕获
Mar 03 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中取得URL的根域名的代码
2011/03/23 PHP
浅谈php冒泡排序
2014/12/30 PHP
简单理解PHP的面向对象编程方式
2016/05/17 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
PHP针对字符串开头和结尾的判断方法
2016/07/11 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
JavaScript多线程详解
2015/08/12 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
python 算法 排序实现快速排序
2012/06/05 Python
零基础写python爬虫之抓取百度贴吧代码分享
2014/11/06 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
python实现图片批量压缩程序
2018/07/23 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
Python多进程编程常用方法解析
2020/03/26 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
python3中for循环踩过的坑记录
2020/12/14 Python
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
以太网Ethernet IEEE802.3
2013/08/05 面试题
医院护士的求职信
2014/01/03 职场文书
法律进社区实施方案
2014/03/21 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
谢师宴答谢词
2015/01/05 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
详解MySQL集群搭建
2021/05/26 MySQL
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers
Python数据结构之队列详解
2022/03/21 Python