利用神经网络识别12306验证码——(一)收集和清洗数据

12306验证码图片一共有80类,名字如下

茶几
雨靴
护腕
本子
锦旗
烛台
海苔
中国结
龙舟
日历
红枣
药片
高压锅
锣
薯条
调色板
路灯
口哨
菠萝
挂钟
冰箱
蜥蜴
电线
航母
手掌印
热水袋
鞭炮
茶盅
海报
电子秤
蜡烛
珊瑚
蚂蚁
话梅
毛线
网球拍
沙拉
拖把
开瓶器
棉棒
风铃
黑板
盘子
金字塔
蜜蜂
文具盒
公交卡
打字机
啤酒
漏斗
印章
铃铛
绿豆
老虎
樱桃
档案袋
订书机
苍蝇拍
辣椒酱
沙包
卷尺
钟表
狮子
跑步机
锅铲
红酒
牌坊
刺绣
安全帽
红豆
剪纸
电饭煲
创可贴
蒸笼
仪表盘
海鸥
排风机
双面胶
篮球
耳塞

现在通过百度图库来下载每一类验证码图片。把上面的80个名字保存到txt文本里,当然也可以直接放在程序中。程序里为每类图片下载了300张,数量可以自己调整。

from selenium import webdriver
import requests
import os

browser = webdriver.Chrome()
browser.maximize_window()
browser.get('https://image.baidu.com/')  #百度图库
#打开存储类别名字的文本文件
with open('picture_name.txt', 'r', encoding='utf-8') as f:
    keywords = f.read().split('\n')

count = 0
for word in keywords:
    os.mkdir(word) # 每类图片都创建一个文件夹,分开存储
    count += 1
    input_id = browser.find_element_by_id('kw')
    button = browser.find_element_by_class_name('s_btn_wr')
    input_id.clear()
    input_id.send_keys(word)
    button.click()
    time.sleep(1.5)
    elements = browser.find_elements_by_class_name('main_img.img-hover')
    while len(elements) < 300:  #图片数量
        browser.execute_script("var q=document.documentElement.scrollTop=10000")
        time.sleep(1.5)
        elements = browser.find_elements_by_class_name('main_img.img-hover')
    count2 = 0
    index = 0
    print('开始下载{}'.format(word))
    while count2 < 300 and index < len(elements):
        url = elements[index].get_attribute('data-imgurl')
        print(index, url)
        try:
            index += 1
            name = word + '/z'+ url.split('=')[1].split(',')[0] + '.png'
            count2 += 1
            response = requests.get(url)
            with open(name, 'wb') as f:
                f.write(response.content)
        except IndexError:
            continue


效果图
在这里插入图片描述

数据收集工作就完成了。接下来需要进行数据清洗,因为并不是每张图片都是符合要求的,这里没办法,只能人工整理了。。。
God bless you!!!
在这里插入图片描述

下一篇博客有惊喜在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值