美文网首页
利用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