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使用pyhook监控键盘并实现切换歌曲的功能
Jul 18 Python
Python检测一个对象是否为字符串类的方法
May 21 Python
Python中max函数用法实例分析
Jul 17 Python
详解Python3中字符串中的数字提取方法
Jan 14 Python
python 匹配url中是否存在IP地址的方法
Jun 04 Python
Python 多线程不加锁分块读取文件的方法
Dec 11 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
opencv-python 读取图像并转换颜色空间实例
Dec 09 Python
tensorflow 只恢复部分模型参数的实例
Jan 06 Python
Python telnet登陆功能实现代码
Apr 16 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
python实现一个简单RPC框架的示例
Oct 28 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预定义常量
2006/12/25 PHP
PHP 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
jquery新的绑定事件机制on方法的使用方法
2014/04/15 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
利用node实现一个批量重命名文件的函数
2017/12/21 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
Python自带的IDE在哪里
2020/07/01 Python
英国工具中心:UK Tool Centre
2017/07/10 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
公司行政经理岗位职责
2013/12/24 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
数学教师求职信范文
2015/03/20 职场文书
联欢会开场白
2015/06/01 职场文书
详解Redis基本命令与使用场景
2021/06/01 Redis
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
关于python中模块和重载的问题
2021/11/02 Python
win10更新失败无限重启解决方法
2022/04/19 数码科技