1.安装模块

2.准备aspx登录页面

3.示例代码

 #coding:utf-8
import re
from bs4 import BeautifulSoup
import gzip
import urllib.request
import urllib.parse
import http.cookiejar
import ssl
import time loginurl='http://192.168.0.108:8005/login.aspx'
vercodeurl='http://192.168.0.108:8005/vercode.aspx?r=%d' heads={
"Accept":"text/html, application/xhtml+xml, */*",
"Accept-Language":"zh-CN",
"User-Agent":"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0",
"Accept-Encoding": "gzip, deflate",
"Host": "http://192.168.0.108:8005",
"DNT": "",
"Connection": "Keep-Alive"
} def get_opener(heads):
cj=http.cookiejar.CookieJar()
pro=urllib.request.HTTPCookieProcessor(cj)
opener=urllib.request.build_opener(pro)
header=[]
for key,value in heads.items():
header.append((key,value))
opener.addheaders=header
return opener def ungzip(data):
try:
data=gzip.decompress(data)
#with open("222.txt",'wb') as file:
#file.write(data)
except:
pass
return data if __name__=="__main__":
ssl._create_default_https_context = ssl._create_unverified_context
opener=get_opener(heads)
op=opener.open(loginurl)
data1=op.read()
data1=ungzip(data1).decode('utf-8')
soup=BeautifulSoup(data1,"html.parser") VIEWSTATE=soup.find("input",{'type':'hidden','name':'__VIEWSTATE'}).get("value")
VIEWSTATEGENERATOR=soup.find("input",{'type':'hidden','name':'__VIEWSTATEGENERATOR'}).get("value")
EVENTVALIDATION=soup.find("input",{'type':'hidden','name':'__EVENTVALIDATION'}).get("value") '''正则获取隐藏值
regular = {
'viewstate': re.compile(r'id="__VIEWSTATE" value="(.+)" />'),
'eventvalidation': re.compile(r'id="__EVENTVALIDATION" value="(.+)" />')
}
print(regular['viewstate'].findall(data1)[0])
''' vercodedata=opener.open(vercodeurl% (time.time() * 1000)).read()
with open("auto100.jpeg",'wb') as file:
file.write(vercodedata)
yzm=input("请输入验证码:")
postdata={
"__VIEWSTATE":VIEWSTATE,
"__VIEWSTATEGENERATOR":VIEWSTATEGENERATOR,
"__EVENTVALIDATION":EVENTVALIDATION,
"username":"sulin",
"userpwd":"",
"btnlogin":"登录",
"vercode":yzm
}
postdata=urllib.parse.urlencode(postdata).encode('utf-8') op2=opener.open(loginurl,postdata)
login_data=op2.read()
data=ungzip(login_data).decode("utf-8")
print(data)

4.测试结果

python登录aspx网站的更多相关文章

  1. 使用Python登录Github网站

    在下面的代码中, 展示了使用Python脚本登录Github的方法. 如果需要登录别的网站,那么请使用Chrome的Inspect的功能寻找到目标的object,对代码进行替换. 代码先登录了gith ...

  2. 使用 Python 登录网站(转)

    对于大部分论坛,我们想要抓取其中的帖子分析,首先需要登录,否则无法查看. 这是因为 HTTP 协议是一个无状态(Stateless)的协议,服务器如何知道当前请求连接的用户是否已经登录了呢?有两种方式 ...

  3. python爬虫笔记之用cookie访问需要登录的网站

     目标:用cookie访问一个需要登录的网站 如图,直接访问会跳转到登录页面,提示登录. 运行结果: 直接在浏览器上输入该url,网站立马跳转到登录页面.  方法: 1.先手动登录,通过抓包获取coo ...

  4. python urllib2 模拟网站登陆

    python urllib2 模拟网站登陆 1. 可用浏览器先登陆,然后查看网页源码,分析登录表单 2. 使用python urllib2,cookielib 模拟网页登录 import urllib ...

  5. python创建简单网站

    前言 本方法基于web2py框架,使用web2py的完整网站数据包创建简单网站. web2py 是一个为Python语言提供的全功能Web应用框架,旨在敏捷快速的开发Web应用,具有快速.安全以及可移 ...

  6. python爬某个网站的图片

    # _*_ coding: gbk _*_ import urllib import urllib2 import re class Spider: def getImage(self,html): ...

  7. 详细介绍windows下使用python pylot进行网站压力测试

    windows下使用python进行网站压力测试,有两个必不可少的程序需要安装,一个是python,另一个是pylot.python是一个安装软件,用来运行python程序,而pylot则是pytho ...

  8. Python Socket请求网站获取数据

     Python Socket请求网站获取数据 ---阻塞 I/O     ->收快递,快递如果不到,就干不了其他的活 ---非阻塞I/0 ->收快递,不断的去问,有没有送到,有没有送到,. ...

  9. 在IIS7上部署aspx网站

    在IIS7上部署aspx网站 2016-12-06 1 示例代码 WebForm.aspx内容: <html> <head> <script language=" ...

随机推荐

  1. pom parent 标签

    <!--parent用于引用父工程 1.统一管理jar包的版本,其依赖需要在子工程中定义才有效(比如此例) 2.统一的依赖管理(父工程的<dependencies>,子工程不必重新引 ...

  2. 模拟MySQL命令

    staff_table 1,Alex Li,22,13651054608,IT,2013-04-01 2,Jack Wang,30,13304320533,HR,2015-05-03 3,Rain L ...

  3. 分享一些PPT模板

     链接:https://pan.baidu.com/s/1ADlYzx7sWR2z0ltVt8kIAQ 提取码:tyzv  

  4. 2428: [HAOI2006]均分数据

    模拟退火.一种十分玄学的随机算法,网上可以查到比较详细的资料. 先随机地把数分成m组,每次随机地选择一个数,一开始直接选最小的一组,后来就随机一组,把这个数换到该组看看答案能不能变小,如果变小则换,如 ...

  5. idae for mac部分背景色修改收集

    文章目录 所有字体默认颜色 终端背景色 行数line number背景色 line number颜色 编码区背景色 光标所在行背景色 未被使用的变量.方法或者类 控制台相关 选中文字的背景色 选中和未 ...

  6. C语言进阶学习第一章

    1.在C语言里面使用scanf给某个变量赋值时候,如果成功返回1,失败返回0:测试代码如下: /***假如在键盘输入的不是整形数据,则输出0,否则输出1***/ void main() { int a ...

  7. org.apache.ibatis.binding.BindingException: Parameter 'xxx' not found. Available parameters are [arg1, arg0, param1, param2]

    这个异常说明参数没有加上@Param注解,加上这个注解就行了. 默认情况下mybatis把参数按顺序转化为[0, 1, param1, param2],也就是说#{0} 和 #{param1} 是一样 ...

  8. char类型在传参时接收不到数据的原因

    mybatis的原因!!!!! 数据库这个样子 在postman中调用接口:SQL select * from T_TRAIN_MARSHALLING where TRAIN_NUM is null ...

  9. PAT甲级——A1125 Chain the Ropes【25】

    Given some segments of rope, you are supposed to chain them into one rope. Each time you may only fo ...

  10. error LNK1104: 无法打开文件“C:\Users\Administrator\Desktop\....\\xxxx.exe”

    1.错误原因:项目在在打开前已经打开了win32里面的程序,并且运行.  解决方法:关闭直接在win32中运行的程序,再点击调试 2.暂时不知道原因,打开程序还会报无权限创建可执行文件.如下图所示 解 ...