美文网首页
利用Python实现豆瓣刷帖效果

利用Python实现豆瓣刷帖效果

作者: 嗨学编程 | 来源:发表于2018-12-30 19:25 被阅读0次

由于在豆瓣发了个租房帖子,发现很快就被其他的帖子淹没,但是手动顶帖实在太累,😭,所以想通过自动顶帖的方式来解放双手!

Python学习资料或者需要代码、视频加Python学习群:960410445

评论请求分析

通过Chrome network 分析

需要带5个参数,其中 ck 是 cookie 里面的值,rv_comment 是 评论

返回302代表重定向

Python 模拟请求:

直接运行即可。

但是多运行几次就会发现,返回的状态码是200,而且没有顶帖成功。实际上是触发了豆瓣的防爬虫。

触发了豆瓣验证码

而且在我们顶帖的时候发送请求的时候还带有 captcha-solution 和 captcha-id 字段。

目前发现,每次评论就算相隔1分钟,只要满3次,就一定会弹出这个验证码进行验证。

验证码解析

遇到验证码我们就来破解验证码。

tesserocr

识别图形验证码需要安装tesserocr这个库,下面介绍下tesserocr。

tesserocr是Python的一个OCR识别库,但其实是对tesseract做了一层Python Api的封装,核心还是tesseract,所以在安装tesserocr之前,需要先安装tesseract。Tesseract(/‘tesərækt/) 这个词的意思是”超立方体”,指的是几何学里的四维标准方体,又称”正八胞体”,是一款被广泛使用的开源 OCR 工具。

在Mac下,使用 brew 安装

brewinstalltesseract--all-languages

接下来再安装tesserocr即可:

brewinstallimagemagickpipinstalltesserocr pillow

Python 代码如下:

验证的图片如下:

douban-captcha-example1

结果无法识别。

换一张简单的图片试试:

结果如下:

5594

看来 Tesseract 只能识别一些简单的验证码,不适合豆瓣验证码识别。

试试识别验证码平台。

注意:

支持2.7.+及3.+

配置流程:

先开通个百度的账号;

开通文字识别服务,打开后点击立即使用:https://cloud.baidu.com/product/ocr.html

点击步骤2,应该有个信息确认的,确认后,会进入到用户个人首页,向下滑动,直接点击文字识别:

点击创建应用,输入一堆内容后,点击确认即可,然后点击我的应用,这里面的API Key 跟Secret Key需要使用到:

点击右上角,用户中心,用户ID也需要用到:

需要的信息准备好了,pip 安装一波

Python pip install baidu-aip

测试一波

验证的图片如下:

douban-captcha-example1

结果走一波:

{"log_id":3968431492157876638,"words_result_num":1,"words_result": [{"words":" minute:"}]}

从结果可以看出识别出了这个验证码。

words_result_num 是识别结果数

words_result 是定位和识别结果数组

words 是识别结果字符串

再来试试

douban-captcha-example2

结果如下:

{"log_id":5251449865676063710,"words_result_num":0,"words_result": []}

没有识别出来,可以看到对于复杂一些的验证码还是会出现无法识别的情况,但是胜在免费。

相关文章

网友评论

      本文标题:利用Python实现豆瓣刷帖效果

      本文链接:https://www.haomeiwen.com/subject/ngzvlqtx.html