Python爬虫爬取网上图片源码,可用来制作深度学习数据集

这次利用python设计一个爬取百度图片上的图片的源码,其中利用的是python的urllib,如果没有装的,可以使用Anconda在环境里进行安装或者
pip install urllib
这两种方式都可以安装,长话短说,上图吧,点击运行后,输入你要下载的图片类型:
在这里插入图片描述
比如,熊猫?美女?还是熊猫先吧
Python爬虫爬取网上图片源码,可用来制作深度学习数据集_第1张图片
再来美女试试!

在这里插入图片描述
咋都是这么性感!

Python爬虫爬取网上图片源码,可用来制作深度学习数据集_第2张图片
那么是不是百度图片页面搜索的那样呢?

看一下,对比一下,是的!

Python爬虫爬取网上图片源码,可用来制作深度学习数据集_第3张图片

提示:有时会出现页面错误的信息,如下
Python爬虫爬取网上图片源码,可用来制作深度学习数据集_第4张图片
那就说明前60张爬不下来,想想也就不斗智斗勇了,百度里的图片还是有很多的,能爬多少是多少得了!

这个可不是简单的随意爬取图片的吶,这个等你在深度学习后面做网络训练制作数据集时,可以从网上爬取一些你需要的训练图片资源的。不要用错地方了。。

附上源码:

(对于其中的url一栏,如果有兴趣,可以关注我后私信给我,然后我后台发给你使用,这也是和有兴趣的同学一个交流的机会,嘿嘿)

import urllib.request
import urllib.parse
import re
import os
# 添加header,其中Referer是必须的,否则会返回403错误,User-Agent是必须的,这样才可以伪装成浏览器进行访问
header = \
    {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',
        "referer": "https://image.baidu.com"
    }
#这里url是一个非常主要的url,可以直接访问baidu网址的,这个不容易外传,所以就不写全了
url = "https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp"

keyword = input("请输入搜索关键字:")

# 转码
keyword = urllib.parse.quote(keyword, 'utf-8')
n = 0
j = 0
while (n < 1000):
    error = 0
    n += 30
    # url
    url1 = url.format(word=keyword, pageNum=str(n))
    # 获取请求
    rep = urllib.request.Request(url1, headers=header)
    # 打开网页
    rep = urllib.request.urlopen(rep)
    # 获取网页内容
    try:
        html = rep.read().decode('utf-8')
        # print(html)
    except:
        print("出错了!")
        error = 1
        print("出错页数:" + str(n))
    if error == 1:
        continue
    # 正则匹配
    p = re.compile("thumbURL.*?\.jpg")
    # 获取正则匹配到的结果,返回list
    s = p.findall(html)
    if os.path.isdir("D://pic") != True:
        os.makedirs("D://pic")
    with open("testpic.txt", "a") as f:
        # 获取图片
        for i in s:
            print(i)
            i = i.replace('thumbURL":"', '')
            print(i)
            f.write(i)
            f.write("\n")
            # 保存图片
            urllib.request.urlretrieve(i, "D://pic/pic{num}.jpg".format(num=j))
            j += 1
        f.close()
print("总共爬取图片数为:" + str(j))

你可能感兴趣的:(深度学习,python,爬虫)