Python爬虫之记录一次下载验证码的尝试!

本文记录了一次使用Python爬虫下载验证码的过程。通过分析页面源码,发现验证码依赖JavaScript生成的时间戳。借助PyExecJS模块,实现了在Python中执行JS代码以获取13位数字时间戳,成功下载了验证码。这次尝试表明PyExecJS能用于Python执行JS,同时提醒在验证码设计时要注重安全性。
摘要由CSDN通过智能技术生成

好久没有写过爬虫的文章了,今天在尝试着做验证码相关的研究时,遇到了验证码的收集问题。

一般,验证码的加载都有着比较复杂的算法和加密在里边,但是笔者今天碰到的验证码却比较幸运,有迹可循。在此,给出本爬虫的相关记录。

注意,文章和代码中均不会给出相关的真实网站的信息,避免不道德的行为。

首先,让我们来看一看该验证码的页面,如下:

如果我们尝试着查看该验证码加载时的源代码,会发现源码如下:

我们可以发现,该验证码的加载机制其实并不复杂,只是在网址后面跟了一个时间戳,而这个时间戳,是由JavaScript中的方法产生的,函数内容为 new Date().getTime() 。

知道了验证码背后加载的原理,那么我们不难通过Python来实现验证码的下载。

可惜的是,上述JS函数产生的时间戳是13位数字,而Python的time.time()方法产生的时间戳为浮点数,小数点前10位,小数点后6位。那么,我们如何产生符合上述JS函数产生的时间戳呢?

一个简单的想法是,我们让Python来调用JS!真的可以吗?幸运的是,前人已经替我们做好了这个工作,有个神奇的Python第三方模块,叫做

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值