爬虫进阶开发——之验证码识别(内测版)

当需要爬取的网页需要需要输入验证码才能访问的时候,该怎么办呢?这个问题,使用神箭手提供的验证码识别服务就能解决。

验证码识别是付费功能,在使用前请先确保你的账户有足够的余额,否则会影响使用。

验证码识别的调用函数请参考内置函数getCaptchagetCaptchaFromBase64

举个栗子:
当输入Base64编码的验证码才能爬取到某网页的数据时,先调用getCaptchaFromBase64函数得到验证码数据,再通过发送POST请求得到网页数据,执行以下代码:

configs.afterDownloadPage = function(page, site) {
    var imgBase64 = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQ...";
    // 得到Base64编码的验证码数据, 是Json格式字符串, 需解析成标准Json数据, 验证码类型是53(1-5位不定长数字英文混合)
    var imgCaptchaData = JSON.parse(getCaptchaFromBase64(53, imgBase64));
    if (imgCaptchaData == null) {
        return page;
    }
    // 判断是否成功得到验证码数据
    if (imgCaptchaData.ret < 0) {
        return page;
    }
    var reg = /csrfToken: \"([0-9a-zA-Z-]+)"/;
    var result = reg.exec(page.raw);
    page.url = "https://checkcoverage.apple.com/cn/zh/?sn=FK1QPNCEGRYD";
    var options = {
        method: "post",
        data: {
            sno: "FK1QPNCEGRYD",
            // 将验证码赋值给"data.ans"
            ans: imgCaptchaData.result,
            captchaMode: "image",
            CSRFToken: result[1]
        }
    };
    // 发送带参数的"POSt"请求得到网页数据
    page.raw = site.requestUrl('https://checkcoverage.apple.com/cn/zh/?sn=FK1QPNCEGRYD', options);
    return page;
}

验证码识别价目表(成功识别一次的价格)

验证码类型(Type) 价格(元) 类型描述
1 0.01 1位数字
2 0.01 2位数字
3 0.01 3位数字
4 0.01 4位数字
5 0.01 5位数字
6 0.01 6位数字
7 0.02 7位数字
8 0.02 8位数字
9 0.03 9位数字
10 0.04 10位数字
11 0.01 1-2位不定长数字
12 0.01 1-3位不定长数字
13 0.01 1-4位不定长数字
14 0.01 1-5位不定长数字
15 0.01 1-6位不定长数字
16 0.02 1-7位不定长数字
17 0.02 1-8位不定长数字
18 0.03 1-9位不定长数字
19 0.04 1-10位不定长数字
20 0.01 1位英文字符
21 0.01 2位英文字符
22 0.01 3位英文字符
23 0.01 4位英文字符
24 0.01 5位英文字符
25 0.01 6位英文字符
26 0.02 7位英文字符
27 0.02 8位英文字符
28 0.02 9位英文字符
29 0.02 10位英文字符
121 0.02 11位英文字符
122 0.02 12位英文字符
123 0.02 13位英文字符
124 0.02 14位英文字符
125 0.02 15位英文字符
126 0.02 16位英文字符
127 0.02 17位英文字符
128 0.02 18位英文字符
129 0.02 19位英文字符
130 0.02 20位英文字符
30 0.01 1-2位不定长字符
31 0.01 1-3位不定长字符
32 0.01 1-4位不定长字符
33 0.01 1-5位不定长字符
34 0.01 1-6位不定长字符
35 0.02 1-7位不定长字符
36 0.02 1-8位不定长字符
37 0.03 1-9位不定长字符
38 0.04 1-10位不定长字符
111 0.04 1-11位不定长字符
112 0.04 1-12位不定长字符
113 0.05 1-13位不定长字符
114 0.05 1-14位不定长字符
115 0.05 1-15位不定长字符
116 0.05 1-16位不定长字符
117 0.05 1-17位不定长字符
118 0.06 1-18位不定长字符
119 0.06 1-19位不定长字符
120 0.06 1-20位不定长字符
281 0.06 1-20位不定长字符,输入斜体部分单词
30 0.01 1-2位不定长字符
31 0.01 1-3位不定长字符
32 0.01 1-4位不定长字符
33 0.01 1-5位不定长字符
34 0.01 1-6位不定长字符
35 0.02 1-7位不定长字符
36 0.02 1-8位不定长字符
37 0.03 1-9位不定长字符
38 0.04 1-10位不定长字符
111 0.04 1-11位不定长字符
112 0.04 1-12位不定长字符
113 0.05 1-13位不定长字符
114 0.05 1-14位不定长字符
115 0.05 1-15位不定长字符
116 0.05 1-16位不定长字符
117 0.06 1-17位不定长字符
118 0.06 1-18位不定长字符
119 0.06 1-19位不定长字符
120 0.06 1-20位不定长字符
281 0.06 1-20位不定长字符,输入斜体部分单词
50 0.01 1-2位不定长数字英文混合
51 0.01 1-3位不定长数字英文混合
52 0.01 1-4位不定长数字英文混合
53 0.01 1-5位不定长数字英文混合
54 0.01 1-6位不定长数字英文混合
55 0.02 1-7位不定长数字英文混合
56 0.02 1-8位不定长数字英文混合
57 0.03 1-9位不定长数字英文混合
58 0.04 1-10位不定长数字英文混合
131 0.05 1-11位不定长数字英文混合
132 0.05 1-12位不定长数字英文混合
133 0.05 1-13位不定长数字英文混合
134 0.05 1-14位不定长数字英文混合
135 0.05 1-15位不定长数字英文混合
136 0.06 1-16位不定长数字英文混合
137 0.06 1-17位不定长数字英文混合
138 0.06 1-18位不定长数字英文混合
139 0.06 1-19位不定长数字英文混合
59 0.01 1位中文
60 0.02 2位中文
61 0.03 3位中文
62 0.04 4位中文
63 0.05 5位中文
64 0.05 6位中文
65 0.06 7位中文
66 0.07 8位中文
67 0.08 9位中文
68 0.09 10位中文
259 0.10 11位中文
260 0.11 12位中文
261 0.12 13位中文
262 0.13 14位中文
263 0.14 15位中文
264 0.15 16位中文
265 0.16 17位中文
266 0.17 18位中文
267 0.18 19位中文
268 0.19 20位中文
69 0.02 1-2位不定长中文
70 0.03 1-3位不定长中文
71 0.04 1-4位不定长中文
72 0.05 1-5位不定长中文
73 0.05 1-6位不定长中文
74 0.06 1-7位不定长中文
75 0.07 1-8位不定长中文
76 0.08 1-9位不定长中文
77 0.09 1-10位不定长中文
269 0.10 1-11位不定长中文
270 0.11 1-12位不定长中文
271 0.12 1-13位不定长中文
272 0.13 1-14位不定长中文
273 0.14 1-15位不定长中文
274 0.15 1-16位不定长中文
275 0.16 1-17位不定长中文
276 0.17 1-18位不定长中文
277 0.18 1-19位不定长中文
278 0.19 1-20位不定长中文
79 0.01 2位纯英文或纯数字
80 0.01 3位纯英文或纯数字
81 0.01 4位纯英文或纯数字
82 0.01 5位纯英文或纯数字
83 0.02 6位纯英文或纯数字
84 0.02 7位纯英文或纯数字
85 0.02 8位纯英文或纯数字
86 0.03 9位纯英文或纯数字
87 0.04 10位纯英文或纯数字
88 0.01 1-2位不定长纯英文或纯数字
89 0.01 1-3位不定长纯英文或纯数字
90 0.01 1-4位不定长纯英文或纯数字
91 0.01 1-5位不定长纯英文或纯数字
92 0.01 1-6位不定长纯英文或纯数字
93 0.02 1-7位不定长纯英文或纯数字
94 0.02 1-8位不定长纯英文或纯数字
95 0.03 1-9位不定长纯英文或纯数字
96 0.04 1-10位不定长纯英文或纯数字
140 0.06 1-20位不定长字符