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分析作业提交情况
Nov 22 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
python3处理含有中文的url方法
May 10 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
Python实现的txt文件去重功能示例
Jul 07 Python
解决pycharm运行时interpreter为空的问题
Oct 29 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
python 自定义装饰器实例详解
Jul 20 Python
django认证系统实现自定义权限管理的方法
Aug 28 Python
Python小程序之在图片上加入数字的代码
Nov 26 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
Python2.6版本pip安装步骤解析
Aug 17 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切割页面div内容的实现代码分享
2012/07/31 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
PHP 实现重载
2021/03/09 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
2016/01/13 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
webpack dll打包重复问题优化的解决
2018/10/10 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
python多线程编程中的join函数使用心得
2014/09/02 Python
详解python字节码
2018/02/07 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
Python流程控制语句的深入讲解
2020/06/15 Python
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
幼儿园教师的考核评语
2014/04/18 职场文书
贷款担保书
2015/01/20 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书
解析Java中的static关键字
2021/06/14 Java/Android
python随机打印成绩排名表
2021/06/23 Python
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
python 标准库原理与用法详解之os.path篇
2021/10/24 Python