数据爬取——12306获取验证码图片并识别

本文介绍了一个Python脚本,用于从12306网站抓取验证码图片。脚本通过发送请求到指定URL,绕过SSL证书验证,并设置必要的请求头来模拟浏览器行为,最终将图片保存到本地。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import time 
import ssl 
import urllib.request 
import urllib.error


def get_code_picture(filepath): 
    #目的为了通过未认证的12306证书 
    ssl._create_default_https_context = ssl._create_unverified_context 
    req = urllib.request.Request("https://kyfw.12306.cn/passport/captcha/captcha-image?login_site=E&module=login&rand=sjrand&0.6551712691897946") 
    req.add_header("Referer","https://kyfw.12306.cn/otn/login/init") 
    req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36") 
    codeimg = urllib.request.urlopen(req).read() 
    with open(filepath, 'wb') as f: 
        f.write(codeimg) 
        
        
        
if __name__ == "__main__": 
    for i in range(4): 
        path = './12306/' + str(i+1) +'.jpg' 
        get_code_picture(path) 
        print(path) #由于12306过快刷新会提示稍后再来,所以再此休眠一秒。 
        time.sleep(1)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值