1.安装模块

2.准备aspx登录页面

3.示例代码

 1 #coding:utf-8
 2 import re
 3 from bs4 import BeautifulSoup
 4 import gzip
 5 import urllib.request
 6 import urllib.parse
 7 import http.cookiejar
 8 import ssl
 9 import time
10
11 loginurl='http://192.168.0.108:8005/login.aspx'
12 vercodeurl='http://192.168.0.108:8005/vercode.aspx?r=%d'
13
14 heads={
15             "Accept":"text/html, application/xhtml+xml, */*",
16             "Accept-Language":"zh-CN",
17             "User-Agent":"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0",
18             "Accept-Encoding": "gzip, deflate",
19             "Host": "http://192.168.0.108:8005",
20             "DNT": "1",
21             "Connection": "Keep-Alive"
22             }
23
24 def get_opener(heads):
25     cj=http.cookiejar.CookieJar()
26     pro=urllib.request.HTTPCookieProcessor(cj)
27     opener=urllib.request.build_opener(pro)
28     header=[]
29     for key,value in heads.items():
30         header.append((key,value))
31     opener.addheaders=header
32     return opener
33
34 def ungzip(data):
35     try:
36         data=gzip.decompress(data)
37         #with open("222.txt",'wb') as file:
38              #file.write(data)
39     except:
40         pass
41     return data
42
43 if __name__=="__main__":
44     ssl._create_default_https_context = ssl._create_unverified_context
45     opener=get_opener(heads)
46     op=opener.open(loginurl)
47     data1=op.read()
48     data1=ungzip(data1).decode('utf-8')
49     soup=BeautifulSoup(data1,"html.parser")
50
51     VIEWSTATE=soup.find("input",{'type':'hidden','name':'__VIEWSTATE'}).get("value")
52     VIEWSTATEGENERATOR=soup.find("input",{'type':'hidden','name':'__VIEWSTATEGENERATOR'}).get("value")
53     EVENTVALIDATION=soup.find("input",{'type':'hidden','name':'__EVENTVALIDATION'}).get("value")
54
55     '''正则获取隐藏值
56     regular = {
57         'viewstate': re.compile(r'id="__VIEWSTATE" value="(.+)" />'),
58         'eventvalidation': re.compile(r'id="__EVENTVALIDATION" value="(.+)" />')
59     }
60     print(regular['viewstate'].findall(data1)[0])
61     '''
62
63     vercodedata=opener.open(vercodeurl% (time.time() * 1000)).read()
64     with open("auto100.jpeg",'wb') as file:
65         file.write(vercodedata)
66     yzm=input("请输入验证码:")
67     postdata={
68         "__VIEWSTATE":VIEWSTATE,
69         "__VIEWSTATEGENERATOR":VIEWSTATEGENERATOR,
70         "__EVENTVALIDATION":EVENTVALIDATION,
71         "username":"sulin",
72         "userpwd":"123",
73         "btnlogin":"登录",
74         "vercode":yzm
75         }
76     postdata=urllib.parse.urlencode(postdata).encode('utf-8')
77
78     op2=opener.open(loginurl,postdata)
79     login_data=op2.read()
80     data=ungzip(login_data).decode("utf-8")
81     print(data)
82    

4.测试结果

转载于:https://www.cnblogs.com/linsu/p/8462385.html

python登录aspx网站相关推荐

  1. python登录网站后爬取数据_用 Python 登录主流网站,我们的数据爬取少不了它

    不论是自然语言处理还是计算机视觉,做机器学习算法总会存在数据不足的情况,而这个时候就需要我们用爬虫获取一些额外数据.这个项目介绍了如何用 Python 登录各大网站,并用简单的爬虫获取一些有用数据,目 ...

  2. selenium验证码登录_用 Python 登录主流网站

    作者收集了一些网站的登陆方式和爬虫程序,有的通过 selenium 登录,有的则通过抓包直接模拟登录.作者希望该项目能帮助初学者学习各大网站的模拟登陆方式,并爬取一些需要的数据. Python人工智能 ...

  3. python登录网站后爬取数据_如何用 Python 登录主流网站,爬取一些需要的数据

    最近收集了一些网站的登陆方式和爬虫程序,有的通过 selenium 登录,有的则通过抓包直接模拟登录.作者希望该项目能帮助初学者学习各大网站的模拟登陆方式,并爬取一些需要的数据. 作者表示模拟登陆基本 ...

  4. selenium验证码登录_如何用 Python 登录主流网站,爬取一些需要的数据

    最近收集了一些网站的登陆方式和爬虫程序,有的通过 selenium 登录,有的则通过抓包直接模拟登录.作者希望该项目能帮助初学者学习各大网站的模拟登陆方式,并爬取一些需要的数据. 作者表示模拟登陆基本 ...

  5. 用 Python 登录主流网站

    作者 | CriseLYJ 编译:机器之心(almosthuman2014) 作者收集了一些网站的登陆方式和爬虫程序,有的通过 selenium 登录,有的则通过抓包直接模拟登录.作者希望该项目能帮助 ...

  6. python登录网站 爬虫_Python爬虫如何使用Cookies登录网站

    最近搞到了一个学校教务系统可以查询全校成绩的账号,恰逢申请奖学金之际,就想用python写个脚本把年级里的绩点排名给爬下来,可是就在写登录的时候发现还是要处理验证码登录的问题,为了避免麻烦,就没使用类 ...

  7. JAVA爬需要账号登录的网_如何用 Python 爬取需要登录的网站?

    最近我必须执行一项从一个需要登录的网站上爬取一些网页的操作.它没有我想象中那么简单,因此我决定为它写一个辅助教程. 在本教程中,我们将从我们的bitbucket账户中爬取一个项目列表. 教程中的代码可 ...

  8. python 登陆网站图片验证,用python登录带弱图片验证码的网站

    上一篇介绍了使用python模拟登陆网站,但是登陆的网站都是直接输入账号及密码进行登陆,现在很多网站为了加强用户安全性和提高反爬虫机制都会有包括字符.图片.手机验证等等各式各样的验证码.图片验证码就是 ...

  9. 用Python爬取需要登录的网站

    最近我必须执行一项从一个需要登录的网站上爬取一些网页的操作.它没有我想象中那么简单,因此我决定为它写一个辅助教程. 在本教程中,我们将从我们的bitbucket账户中爬取一个项目列表. 教程中的代码可 ...

最新文章

  1. fedora mysql 客户端_fedora mysql 安装
  2. ActionResult 返回类型
  3. 共享库中的位置无关代码(PIC)
  4. AtCoder AGC043C Giant Graph (图论、SG函数、FWT)
  5. python input函数无法输入字符串_Python手把手教程之用户输入input函数
  6. android开发 apk文件,android开发中,将数据库文件与APK一起发布?
  7. svn切换分支 如何判断 是否完成_SVN创建分支/合并分支/切换分支
  8. 苹果高管谈及近期员工担忧,呼吁其向管理层报告职场问题
  9. 最简单的视音频播放示例1:总述
  10. ZZULIOJ/python1006: 求等差数列的和
  11. 魔兽世界地图插件制作代码
  12. 租房退租时,房东不退押金怎么办?
  13. 和求余运算巧妙结合的jns指令
  14. 我的第一次黑苹果安装,还挺顺利!!!!
  15. execvp函数详解_如何在C / C ++中使用execvp()函数
  16. 深圳FC1511型号单片机应用程序编程开发环境MCU
  17. 黑盒测试和白盒测试,覆盖率的测试
  18. linux下nginx修改ip,通过域名ip进入网页
  19. [学习笔记]《代码整洁之道》(八)
  20. 3月28日出生的赵姓女孩根据生辰八字取名字有内涵诗意的名字

热门文章

  1. 华丽成长为IT高富帅、IT白富美(12)
  2. 同学信誓旦旦地说,我司的系统从来不做性能调优!
  3. 前端那些好看的视觉效果集合
  4. 快速查找IP地址所属范围
  5. C# HttpClient教程
  6. Oracle之创建表、序列、索引和视图
  7. 后羿 10 ‖ 奔月
  8. python--合影照片中多人脸检测、分离、存储、识别综合应用
  9. 红信圈是如何重新定义广告传播途径的
  10. codeblocks不能调试