,,python模拟登陆网站的示例

,,python模拟登陆网站的示例

这篇文章主要介绍了大蟒模拟登陆网站的示例,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下

目录

使用已有甜饼干登陆登陆获取烹饪形式数据

请求有效负载

登陆后用会议保持登陆状态调用浏览器登陆

使用已有甜饼干登陆

使用浏览器登陆,获取浏览器中的甜饼干信息,来进行登陆。

我们以博客园为例,先登录博客园账号。我们访问随笔列表,在控制台我们可以看到我们登陆后浏览器的甜饼干

剔除一些数据统计及分析的饼干,剩下的就是登陆可能需要的CNBlogsCookie。和。Cnblogs。AspNetCore . Cookies

# _ga谷歌分析甜饼干

# UM_distinctid友盟甜饼干

# CNZZxxx CNZZcookie

# __utma,__utmc,__utmz google统计网站

# Hm_lvt_xxx百度统计网站

导入urllib.request

url='https://i.cnblogs.com/posts '

user _ agent=' Mozilla/5.0(Windows NT 10.0;win 64x 64)apple WebKit/537.36(KHTML,像壁虎一样)Chrome/77。0 .3865 .90 Safari/537.36 '

#浏览器登录后得到的饼干,也就是刚才复制的字符串

cookie_str=' .CNBlogsCookie=xxx' Cnblogs。AspNetCore.Cookies=xxx '

标题={

'用户代理:用户代理,

' cookie':cookie_str

}

req=urllib.request.Request(url,headers=headers)

resp=URL库。请求。urlopen(请求).阅读()。解码(“utf-8”)

打印(责任)

登陆获取甜饼干

登陆的表单一般是使用的表单数据,现在也有些表单使用请求有效负载使用json格式传参。

格式数据如药智网

请求有效负载如博客园

格式数据

博客园的登陆需要拖动验证所以略过。我们以药智网为例,我们打开控制台可以看到登陆需要传的表单参数,这里是使用的格式数据表单。我们模拟登陆后获取到登陆后的饼干,然后访问登录后的个人中心页面。

导入urllib.request

导入cookiejar

url='https://www.yaozh.com/login '

user _ agent=' Mozilla/5.0(Windows NT 10.0;win 64x 64)apple WebKit/537.36(KHTML,像壁虎一样)Chrome/77。0 .3865 .90 Safari/537.36 '

#表单数据数据

数据={ '用户名': '用户名,

密码': '密码,

formhash': 'C3086BBA84 ',

backurl ':' https://www .耀日。com/' }

post _ data=urllib。解析。urlencode(数据).编码(“utf-8”)

# 请求头设置

标题={

'用户代理:用户代理

}

# 构造登陆请求

req=urllib.request.Request(url,headers=headers,data=post_data)

#饼干

cookie=http。库克雅尔。cookiejar()

# 构造一个开启工具携带登录后的甜饼干

opener=URL lib。请求。build _ opener(URL lib。请求。httpcookieprocessor(cookie))

# 发送登陆请求

resp=opener.open(req)

打印(责任)

# 登录后个人中心

URL=' https://www。耀日。' com/member/'

# 构造访问请求

req=urllib.request.Request(url,headers=headers)

resp=opener.open(req).阅读()。解码(“utf-8”)

打印(责任)

请求有效负载

如果登陆需要请求有效负载我们需要将参数转为json字符串并在头部设置内容类型

导入json

.

data={'loginType': '1 ',

" pwdOrVerifyCode ":"密码,

用户标识":"账号,

uaToken ":",

webUmidToken':''}

标题={

内容类型":"应用程序/JSON;字符集=UTF-8 ',

'用户代理:用户代理

}

req=urllib.request.Request(url,headers=headers,data=json.dumps(data))

.

登陆后用会议保持登陆状态

我们用要求模块的会议对象来保存回话信息

导入请求

url='https://www.yaozh.com/login '

user _ agent=' Mozilla/5.0(Windows NT 10.0;win 64x 64)apple WebKit/537.36(KHTML,像壁虎一样)Chrome/77。0 .3865 .90 Safari/537.36 '

#表单数据数据

data={'username': 'chenjy1225 ',

pwd': '19931225yjy ',

formhash': 'C3086BBA84 ',

backurl ':' https://www .耀日。com/' }

#构造会议

会话=请求。会话()

# 发送邮政请求

resp=session.post(url,data)

# 登录后个人中心

URL=' https://www。耀日。' com/member/'

# 发送请求访问个人中心

resp=会话。获取(URL)。内容。解码(“utf-8”)

打印(责任)

调用浏览器登陆

我们也可以在程序中调用一个浏览器来访问登陆网站。在大蟒中使用硒库就能轻松实现调用浏览器,被控制的浏览器可以是chrome、firefox等。

以前较常用的还是幻象但是幻象被大蟒弃用了。

用户警告:对幻象的硒支持已被否决,请使用铬或火狐浏览器的不在意的版本

warnings.warn('对幻象的硒支持已被否决,请使用“无头”

火狐浏览器对应的壁虎

铬对应的chrnpm.taobao.org/mirrors/chromedriveromedriver

1.下载硒、火狐浏览器及火狐浏览器驱动。

2.将下载的火狐浏览器驱动壁虎放在火狐浏览器浏览器安装目录

3.将火狐浏览器浏览器安装目录添加到小路中

4.重启圆腹雅罗鱼

我们找到需要登陆时候输入的元素身份证明(识别)及登陆按钮身份证。

从硒导入网驱动程序

导入时间

# 新建硒浏览器对象,后面是geckodriver.exe下载后本地路径

浏览器=网络驱动程序.火狐()

url='https://www.yaozh.com/login '

# 浏览器访问登录页面

browser.get(url)

# 等待3s用于加载脚本文件

浏览器。隐式等待(3)

# 输入用户名

用户名=浏览器。查找元素标识('用户名)

username.send_keys('chenjy1225 ')

# 输入密码

密码=浏览器。按标识查找元素(' pwd ')

密码。send _ keys(' 19931225 yjy ')

# 点击登录按钮

log in _ button=浏览器。按标识查找元素('按钮')

登录按钮提交()

# 网页截图

浏览器。save _ snapshot(' snapshot。png’)

# 强制等待5s,等待登录后的跳转

时间。睡眠(5)

URL=' https://www。耀日。' com/member/'

browser.get(url)

# 网页截图个人中心

浏览器。保存屏幕截图('屏幕截图1。png’)

# 关闭浏览器

browser.quit()

截图。巴布亚新几内亚:

截图1.png:

以上就是大蟒模拟登陆网站的示例的详细内容,更多关于大蟒模拟登陆网站的资料请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: