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网络编程学习笔记(10):webpy框架
Jun 09 Python
python黑魔法之编码转换
Jan 25 Python
Linux下为不同版本python安装第三方库
Aug 31 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
详解Python import方法引入模块的实例
Aug 02 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
python读取TXT每行,并存到LIST中的方法
Oct 26 Python
利用Python如何实现一个小说网站雏形
Nov 23 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
django使用JWT保存用户登录信息
Apr 22 Python
为什么是 Python -m
Jun 19 Python
Python机器学习之基于Pytorch实现猫狗分类
Jun 08 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实现图形显示Ip地址的代码及注释
2014/01/20 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
Javascript学习笔记2 函数
2010/01/11 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
nodejs基础应用
2017/02/03 NodeJs
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
Sanic框架安装与简单入门示例
2018/07/16 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
python 日期排序的实例代码
2019/07/11 Python
python3 mmh3安装及使用方法
2019/10/09 Python
Python文件操作方法详解
2020/02/09 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
异地年检委托书范本
2014/09/24 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
检讨书范文大全
2015/05/07 职场文书
教师工作证明范本
2015/06/12 职场文书
Mysql Show Profile
2021/04/05 MySQL