当前位置:   article > 正文

(一)yolov3(c++版)+win训练数据之图片爬虫_windows yolov3 c++

windows yolov3 c++

环境 win10 + python3.x + pycharm

1. 载入爬虫模块

from requests_html import HTMLSession            #载入爬虫模块
  • 1

如示没有requests_html 该模块如下安装:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 创建session对象

from requests_html import HTMLSession            #载入爬虫模块
  • 1

3. 获得发现百度图片搜索规律并发起请求并匹配到图片的url

from requests_html import HTMLSession            #载入爬虫模块
session =HTMLSession() #创建完毕
#拿二傻子为例
response = session.get('http://image.baidu.com/search/index?tn=baiduimage&fm=result&ie=utf-8&word=二傻子')
#获取我们图片的url的正则匹配格式
img_url_regex = '"thumbURL":"{}",'
#解析并获取图片url_list
img_url_list = response.html.search_all(img_url_regex)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4. 访问图片url并且保存下来

from requests_html import HTMLSession            #载入爬虫模块
session =HTMLSession() #创建完毕
#拿二傻子为例
response = session.get('http://image.baidu.com/search/index?tn=baiduimage&fm=result&ie=utf-8&word=二傻子')
#获取我们图片的url的正则匹配格式
img_url_regex = '"thumbURL":"{}",'
#解析并获取图片url_list
img_url_list = response.html.search_all(img_url_regex)

mun=0
for url in img_url_list:
    mun+=1
    #访问图片链接
    response= session.get(url[0])
    #保存二进制并保存至本地
    with open(f'第{mun}张.jpg','wb') as fw:
        fw.write(response.content)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

5. 类的封装

# -*- coding: utf-8 -*-
# @Author  : xionghao.chen
# @File    : BaiduImgSession.py
# @date    : 2020.03.13
# @Software: PyCharm
#网上爬虫图片

from requests_html import HTMLSession
import os

class BaiduImgSession:
    session = HTMLSession()
    img_url_regex = '"thumbURL":"{}",'
    url = ''
    img_url_list = []
    SearchName = ''
    def get_search(self):
        search = input('请输入你要搜索的图片')
        # 有点点偷懒参数没有好好分析全,只对关键参数处理
        self.url = f'https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord={search}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=&copyright=&word={search}&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&rn=30&gsm='
        self.SearchName = 'images/' +search
        if not os.path.exists('images'):
            os.makedirs('images')

    def get_img_url_list(self):
        '&pn=30000'
        pn = 0
        try:
            while True:  # 由于百度限制只能抓取450张,嗯可能能获取480张,我懒没接着分析了,如果真的需要私聊我我可以写全
                res = self.session.get(f'{self.url}&pn={pn}')
                #print(res.json()['bdIsClustered'])
                if res.json()['bdIsClustered'] == '2':
                    break
                else:
                    pn += 30
                    for dic in res.json()['data']:
                        img_url = dic.get('thumbURL')
                        if img_url:
                            self.img_url_list.append(img_url)
        except Exception as e:
            pass

    def save_img(self, numMax):
        num = 0
        if not os.path.exists('%s'%(self.SearchName)):
            os.mkdir('%s'%(self.SearchName))
        for url in self.img_url_list:
            num += 1
            if num > numMax:
                break
            # 访问图片链接
            response = self.session.get(url)
            # 保存二进制并保存至本地
            with open(f'%s/%06d.jpg'%(self.SearchName,num), 'wb') as fw:
                fw.write(response.content)
                print(f'第{num}张保存本地完毕')

    def run(self):
        self.get_search()
        self.get_img_url_list()
        print("可保存的图片数量为:%d"%len(self.img_url_list))
        numMax = int(input('请输入你要保存的图片的数量'))
        self.save_img(numMax)

if __name__ == '__main__':
    try:
        imgSession = BaiduImgSession()
        imgSession.run()
        print("BaiduImgSession finish")
    except Exception as err:
        print("BaiduImgSession occur error: ",err)

    os.system('pause')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73

6. 使用

在这里插入图片描述
在这里插入图片描述
*images\深度学习*
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/736302
推荐阅读
相关标签
  

闽ICP备14008679号