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中字符串和数字拼接报错的方法
Oct 23 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
Sep 30 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
Python  unittest单元测试框架的使用
Sep 08 Python
python脚本之一键移动自定格式文件方法实例
Sep 02 Python
Python 使用type来定义类的实现
Nov 19 Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 Python
python 使用csv模块读写csv格式文件的示例
Dec 02 Python
python本地文件服务器实例教程
May 02 Python
Pillow图像处理库安装及使用
Apr 12 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 n个不重复的随机数生成代码
2009/06/23 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
php猜单词游戏
2015/09/29 PHP
twig里使用js变量的方法
2016/02/05 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
js 事件小结 表格区别
2007/08/13 Javascript
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
2016/09/16 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
Python的动态重新封装的教程
2015/04/11 Python
python使用pymysql实现操作mysql
2016/09/13 Python
python实现两个文件合并功能
2018/04/01 Python
python使用turtle绘制分形树
2018/06/22 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
简历自我评价怎么写呢?
2014/01/06 职场文书
业绩考核岗位职责
2014/02/01 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python