Python爬虫 – 用账号密码登陆微博后爬数据

在爬网页时,需要登陆是很常见的。也就会涉及到请求header和form data。下面通过一个小例子来学习。

微博登陆

本来想以知乎为🌰,但是时不时就让输验证码。。。这次就弄个简单点的,下次再来说验证码的问题。

找了半天,终于找到个简单直接的。。。微博手机版:https://passport.weibo.cn/signin/login

首先随便填个内容,打开网络监控,看一下发送的内容:

明文密码,就问你怕不怕!不过方便我们小白学习,直接用就好了。

首先,找到请求地址:

然后查看Request Header,经测试,只需要其中的Host和Referer两项就可以了。

如下:除了Host和Referer,其他都不需要。

紧接着我们拿一下请求数据,这里也只需要username和Password两项,其他的可有可无。

通过request的post请求登陆,用session保存cookie,以便访问后续网页

一个坑

到这里已经登陆成功,但仅仅是登陆成功拿到了cookie,response里面是没有内容的。

但我们想要爬一些内容的话,我们需要去相应的页面去拿。

重点!手机版的微博有多种:

触屏版:https://m.weibo.cn/

彩版:https://weibo.cn/

这里有个坑,如果是触屏版,访问https://m.weibo.cn/是拿不到response的,Response是通过一个https://m.weibo.cn/feed/friends?请求去拿到的。

但彩版就简单了,直接能够拿到response

这个坑折腾了我好一会儿。。。

 

下面是完整代码:

 效果图

当然了,这只是最简单的登陆方式,其实现在的网站基本都不这么随意了。。。大部分网站登陆都会遇到各种验证码,还有数据加密等。后面来说说验证码的问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注