Python+selenium+firefox登录微博并爬取数据(2)

上次写到安装完成环境,并且成功访问到微博首页(未登录状态)。后来发现新浪的登录机制太繁琐,所以放弃selenium登录,转向使用新浪官方Api 爬取数据。但是,写完之后才发现,调用接口也有限制。没办法只能模拟登陆。(都是被逼的)

所以我又回到了使用selenium模拟登陆的道路上。我准备在登陆成功后获取到cookie。这样下次登录直接带上cookie就可以访问成功。

上次说到有图片验证码的问题。我最后发现,如果是手机号码登录会弹出图片验证码,如果是邮箱登录则不存在。频繁登录的话,就不敢保证的。模拟登陆是为了获取cookie。而为了一步到位,后期不再为了取cookie再模拟登陆,所以模拟登陆也要自动化。

基本思路:首先访问新浪首页,然后填入“用户名”,“密码”,最后点击“登录按钮”。完成模拟登陆。登陆成功后。把cookie 保存到本地。在下次登录时,直接获取cookie 访问。

上代码:(注解我写的很详细了):

接下里编写一下cookie的保存,和cookie的获取代码:如何判断cookie已经失效呢?一般cookie里面有一个失效时间。但是新浪的我没找到。所以我把获取cookie做成一个调度任务,每天调度一次。然后保存cookie。或者可以在登录之后,检查自己昵称所在的元素是否生成,如果生成了,则不需要登录,否则,就是cookie失效。重新登录。

接下来就是调用cookie,然后访问新浪:

模拟登陆成功后,就可以干自己想干的事了,嘎嘎!!!