豆瓣python-利用Python实现豆瓣刷帖效果

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

评论请求分析

通过Chrome network 分析b968bd00fade90f7932327bd185c28389d4782a8.png

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

返回302代表重定向

Python 模拟请求:c4f06924adaf36538be8f90f6fcb6843db5df43a.png

直接运行即可。

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

触发了豆瓣验证码

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

目前发现,每次评论就算相隔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 代码如下:88712cb1addd92fdb8c8db30df10064dd281d44e.png

验证的图片如下:122f80f679c14fd7099bdb0e06ef452e637bbae7.jpg

douban-captcha-example1

结果无法识别。

换一张简单的图片试试:7dd9e5ba76fab1c21fc16f3197679ace98ad9dee.jpg

结果如下:

5594

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

试试识别验证码平台。

注意:

支持2.7.+及3.+

配置流程:

先开通个百度的账号;

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

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

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

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

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

Python pip install baidu-aip

测试一波13cf31bbee9150706d0d956da5f239556b530449.png

验证的图片如下:122f80f679c14fd7099bdb0e06ef452e637bbae7.jpg

douban-captcha-example1

结果走一波:

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

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

words_result_num?是识别结果数

words_result?是定位和识别结果数组

words?是识别结果字符串

再来试试43f0e7ae5067b13ff3c82f35974ec08265e58c0c.jpg

douban-captcha-example2

结果如下:

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值