python判断是否登录成功_python-42: 怎么判断模拟登录是否成功

"怎么判断模拟登陆是否成功"

我最开始的时候也问过这个问题,当时对所有流程都还不熟悉,而且写的代码没一个能成功的,就给自己提了一大堆的问题,也在论坛上发表提问,在这个过程中,我遇到了很多的情况,好多都能作为判断的依据,这里跟大家分享一下

代码不报错但是完全没有输出的,这是没得怀疑的了,有可能是你代码中的逻辑错误或者网址输错或者根本不能访问网站等等,这些是隐式的错误,而像语法错误,关键词拼写错误等等这些程序一运行就会报错的,我把他们叫做显式错误

代码运行出现URLError或者是HTTPError的,有可能是函数使用不对或者是网络原因或者是网站限制,反正连输出都看不到的肯定想都不用想了

有输出结果,而且是网页源码,这至少证明了你的程序是没有错的,但是有源码并不意味着是登陆成功之后的网页的源码,所以你需要对比登陆前的源码和登陆后的源码有什么区别

登陆后网页上一般会显示你的用户名,个人信息,或者退出的选项,或者其他的操作标志等等,这些一般都能在网页源码中找到,所以要先手动登陆,对比登陆前和登陆后的界面有什么区别,然后在爬取到的源码中按这些关键字搜索

现在我们从两个方面来判断我们是否已经登陆成功了

首先,先下载网页源码,程序已经很熟悉了

#!/usr/bin/env python

# -*- coding: UTF-8 -*-

__author__ = '217小月月坑'

import urllib2

url = 'http://www.lvye.org/userinfo.php?uid=409557'

user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:39.0) Gecko/20100101 Firefox/39.0'

headers = {'User-Agent':user_agent}

request = urllib2.Request(url,headers=headers)

response = urllib2.urlopen(request)

print response.read()

这个代码中没有使用cookies或者是其他操作,所以爬取的网页是未登陆的网页。源码很长,这里就不贴出来了,你们可以自己去对比,登陆后的网页中有"退出"的字样,我们现在爬取的网页应该会有"登陆","用户注册"等等这些字样

2. 对比登陆前后的两个界面

至于这个网址我要在这里说一下,最后面的uid=409557 应该是身份的ID标识,或者说是一个序号,是这个网站管理者给每一个注册的用户的唯一标识,所以前面叫大家先注册也是这个原因,使用我的这个网址应该是登陆不上的,在编写代码的时候,也需要把headers,cookies等等换成你自己的,要不然是登陆不上的

这是登陆前的界面

这是登陆后的界面

大家应该看到网页的左上角和电子邮件这一栏的信息在登陆前后是不一样的,而这些信息一定会在网页源码中找到,现在我们来截取源码中的一些片段

这是登陆前的

这是登陆后的

所以如何判断是否登录成功最主要的是对比登录前后网页的变化,这些变化一定会在源码中表现出来,我们只要在获取的源码中找到关键的信息就行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值