16

用Python模拟技巧带你实现自动抽屉登录&自动点赞

 4 years ago
source link: https://ask.hellobi.com/blog/dcpeng/36478
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

/1 前言/

嘿,各位小伙伴们晚上好呀,今天小编又给大家带来干货内容啦,今天带来的是,如何自动登录抽屉,并且点赞!

原计划是不打算使用selenium的,但是因为要涉及点赞,所以免不了登录。但事实证明,我又被啪啪打脸了,抽屉的登录是真的难,各种参数把我干懵了。无赖之下,我还是捡起了selenium,难逃真香定律呐,哈哈哈。

好了,废话不多说,直接进入正题吧!

/2 准备工作/

万年不变的套装...

Chromedriver:浏览器驱动,可以理解为一个没有界面的chrome浏览器。

Selenium:用于模拟人对浏览器进行点击、输出、拖拽等操作,就相当于是个人在使用浏览器,也常常用来应付反爬虫措施。

/3 抽屉点赞机制/

我们都知道,要想点赞,就需要知道是谁点的,登录以后需要等保存状态,一般有cookie,seeeion,token三种形式,那么抽屉的是怎么玩的呢?我们来图解一下,如下图所示。

NfI3Ejj.jpg!web

通过上图,我们一目了然,能看出来,只要我们登录了之后,拿到了cookie,以后就不用selenium啦!所以,我们这里将登录获取cookie和点赞进行分离,分开进行,逻辑也十分的清晰,而且一点儿也不耽误事情。

/4 登录预热/

抽屉url: https:// dig.chouti.com/ ,直接放这了。

一个热榜资讯社区,大概长这个样子,如下图所示,内容还是挺不错的。

u2e6beb.jpg!web

在上图我们可以看到右上方的登录按钮,在左侧可以看到需要点赞的图标以及点赞数,评论数和收藏数等等,接下来我们先进行第一步自动登录。

/5 开始登录/

点击右上方的登录按钮,页面将会进行跳转,进入到一个登录界面,如下图所示。

EJVrQvR.jpg!web

弹出登录模态对话框,接下来我们使用selenium来开始盘它了,直接上代码,如下所示。

QfQ3AvI.jpg!web

注意事项1:介于篇幅和排版原因,这里只是给出了一个代码截图,完整代码我在文末留了github链接,回头可以直接去down即可。

因为此登录是模态对话框,所以用selenium是不能点击登录按钮的,需要执行js代码,如下图所示。

iY7rQjn.jpg!web

Cookie是怎么玩的呢,我他把写在了本地,但是测试发现selenium获取cookie不全,所以我们依然使用js获取。

RjqUjuQ.jpg!web

注意事项2:抽屉如果登录多了,可能会让输入滑块验证码之类的,本文这部分并未有进行处理。

/6 自动登录示例效果图/

自动登录的效果图如下图所示:

v2eI7rY.jpg!web

/7 开始自动点赞/

在上面的工作中,我们已经成功的拿到登录返回的cookie了,接下来我们就开始自动点赞,而且有了之前的基础,下面的事情我们就好办多了。

我们首先需要看一下,点赞请求的是哪个接口。我们清空一下浏览器中的NetWork日志,点击第一个文章的赞按钮,如下图所示。

RjqUjuQ.jpg!web

我们可以看到,这个接口发的是post请求,但是发送的是什么数据呢?我们下滑继续一探究竟。

BvemmiN.jpg!web

可以看到在Form Data里边,有一个linkid:29213534,是一串长数字,这个是什么呢?马上揭晓!

使用浏览器与网页的交互功能,我们点击对应的文章,那么很快我们就可以锁定这个linkid,如下图所示。

iyMBjui.jpg!web

相信大家肯定都看得出来,其实post的那一串数字其实就是文章ID。换句话说,我们只需要把这个ID都获取到,放到post构造数据里边,程序一运行,就可以实现点赞啦!

/8 代码实现/

下面是部分代码截图,完整代码在文末,如下图所示。

mqyqMbF.jpg!web

注:这里只是测试了前10个文章。

/9 抽屉自动点赞效果图/

为了方便大家查看,我做了一个简单的小动态图给大家,详情如下。

aa6bIna.jpg!web

如果动图看的不是很清晰的话,不用慌,小编已经把原图放到github上了,大家可以去访问看看,很清晰,如下图所示。github链接在文末,欢迎大家来戳!

YRjiQb6.jpg!web

/10 抽屉自动点赞效果图/

代码详情我已经上传到github这里了: https:// github.com/cassieeric/p ython_crawler/tree/master/autoVote 。如果觉得还不错,记得给个star噢,感想小伙伴们的支持!

本文由dcpeng 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。

转载、引用前需联系作者,并署名作者且注明文章出处。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK