从百度图片下载一些图片当做训练集,好久没写爬虫,生疏了。没有任何反爬,随便抓。

网页:

动态加载,往下划会出现更多的图片,一次大概30个。先找到保存每一张图片的json,其对应的url:

打开调试,清空,然后往下划。然后出现:

点击左侧的链接,出现右边的详细信息,对应的就是URL。对这个url做请求即可。以下是代码:

# -*- coding: utf-8 -*-
# import tensorflow as tf
# import os
# import numpy as np
import requests
import my_fake_useragent as ua
import re
import random # 蓝色背景
def blue_print(*s, end='\n'):
for item in s:
print('\033[46m {} \033[0m'.format(item), end='')
print(end=end) # 高亮,绿色字体,红色背景
def green_print(*s, end='\n'):
# print('\033[1m {} \033[0m'.format(s), end=end)
for item in s:
print('\033[1;32;41m {} \033[0m'.format(item), end='')
print(end=end) class download_data():
def __init__(self):
# 初始化常用参数
# 请求头
self.user_agent = ua.UserAgent()
# 正则用于匹配响应内容中的图片url
self.pattern_url = r'"thumbURL":"(.*?)"' # 爬虫:从网上下载数据集
def get_url_from_internet(self, url):
for i in range(5):
try:
# print(self.user_agent.random())
res = requests.get(url, headers={'User-Agent': self.user_agent.random()}, timeout=5)
# print(res.text)
url_list = re.findall(self.pattern_url, res.text)
# print(url_list)
return url_list
except:
pass # 这里可以将请求失败的url存入数据库,防止数据丢失
return None def write_img(self, url):
for i in range(3):
try:
# 真正下载图片数据的,就这两行代码
res = requests.get(url, headers={'User-Agent': self.user_agent.random()}, timeout=5)
img = res.content
# print(img) # 将响应内容写入本地*.jpg文件中
with open('dataset/monkey{}.jpg'.format(random.randint(10 ** 8, 10 ** 9)), 'wb') as f:
f.write(img)
print('monkey{} 下载完成'.format(random.randint(10 ** 8, 10 ** 9)))
return
except:
pass # 这里可以将请求失败的url存入数据库,防止数据丢失
return None if __name__ == '__main__':
tt = download_data()
for page in range(0, 1000, 30):
# 构造url,设置range的右边界越大,下载的图片就越多
url = 'https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result\
&queryWord=%E7%8C%B4%E5%AD%90+%E5%9B%BE%E7%89%87&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=\
&hd=&latest=&copyright=&word=%E7%8C%B4%E5%AD%90+%E5%9B%BE%E7%89%87&s=&se=&tab=&width=&height=&face=\
&istype=&qc=&nc=&fr=&expermode=&force=&pn={}&rn=30&gsm=&1572502599384='.format(page)
url_list = tt.get_url_from_internet(url)
if url_list:
for each_url in url_list:
tt.write_img(each_url)

什么都不打印看着不舒服,随便打印一些结果出来:

文件夹:

用网上的图片作训练集,而且还是自己抓的,效果估计不会太好。先用着看。自己手动将质量差的图片删一删。

11-19

有时候会遇到一点点反爬,响应码403,在headers中添加 "referer": "https://image.baidu.com"即可

python3 TensorFlow训练数据集准备 下载一些百度图片 入门级爬虫示例的更多相关文章

  1. 百度图片爬虫-python版-如何爬取百度图片?

    上一篇我写了如何爬取百度网盘的爬虫,在这里还是重温一下,把链接附上: http://www.cnblogs.com/huangxie/p/5473273.html 这一篇我想写写如何爬取百度图片的爬虫 ...

  2. TensorFlow训练MNIST数据集(1) —— softmax 单层神经网络

    1.MNIST数据集简介 首先通过下面两行代码获取到TensorFlow内置的MNIST数据集: from tensorflow.examples.tutorials.mnist import inp ...

  3. Tensorflow 2 flower_photos花卉数据集手动下载、离线安装、本地加载、快速读取

    Tensorflow 2 flower_photos花卉数据集手动下载.离线安装.本地加载.快速读取 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.c ...

  4. Tensorflow 2 Cifar10离线数据集手动下载、离线安装、本地加载、快速读取

    Tensorflow 2 Cifar10离线数据集手动下载.离线安装.本地加载.快速读取 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com   查 ...

  5. 利用tensorflow训练简单的生成对抗网络GAN

    对抗网络是14年Goodfellow Ian在论文Generative Adversarial Nets中提出来的. 原理方面,对抗网络可以简单归纳为一个生成器(generator)和一个判断器(di ...

  6. 2、TensorFlow训练MNIST

    装载自:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html TensorFlow训练MNIST 这个教程的目标读者是对机器学习和T ...

  7. Tensorflow MNIST 数据集测试代码入门

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50614444 测试代码已上传至GitH ...

  8. Tensorflow MNIST 数据集測试代码入门

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50614444 測试代码已上传至GitH ...

  9. TensorFlow.训练_资料(有视频)

    ZC:自己训练 的文章 貌似 能度娘出来很多,得 自己弄过才知道哪些个是坑 哪些个好用...(在CSDN文章的右侧 也有列出很多相关的文章链接)(貌似 度娘的关键字是"TensorFlow ...

随机推荐

  1. Spring Boot SpringApplication启动类(二)

    目录 前言 1.起源 2.SpringApplication 运行阶段 2.1 SpringApplicationRunListeners 结构 2.1.1 SpringApplicationRunL ...

  2. ASP.NET Core3.X 终端中间件转换为端点路由运行

    引言 前几天.NET Core3.1发布,于是我把公司一个基础通用系统升级了,同时删除了几个基础模块当然这几个基础模块与.NET Core3.1无关,其中包括了支付模块,升级完后静文(同事)问我你把支 ...

  3. SpringBoot日志处理之Logback

    日志处理是一个正式项目必备的功能,日志要能够根据时间.类型等要素,根据指定格式来保存指定的日志,方便我们观察程序运行情况.定位程序bug. SpringBoot中推荐使用Logback日志框架. 本节 ...

  4. 3分钟了解ServiceStage 应用智能化运维【华为云分享】

    [摘要] 微服务云应用平台(ServiceStage)是面向企业及开发者的一站式DevOps平台服务,支持基于微服务的应用开发.治理.部署及运维监控的全生命周期管理,并提供大规模容器集群管理及中间件服 ...

  5. 一条数据的HBase之旅,简明HBase入门教程2:数据模型

    [摘要] 上一篇文章讲了HBase项目与应用概况信息,这篇文章讲述HBase的数据模型以及一些基础概念,数据模型可以说决定了HBase适合于什么应用场景. 华为云上的NoSQL数据库服务CloudTa ...

  6. ios 10 更新 新体验

    1.使用手机登录开发者网站https://developer.apple.com/download/ 2.下载描述文件 3.安装描述文件,按照提示步骤操作 4.更新ios系统 下面的方法是连接电脑直接 ...

  7. mininet(二)简单的路由实验

    mininet(一)实验环境搭建 mininet(二)简单的路由实验 mininet(三)简单的NAT实验 在网上找了 好几个代码都是不能直接复现成功,这里把自己实现成功的代码给大家演示一下. 实验的 ...

  8. Java修炼——基于TCP协议的Socket编程_双向通信_实现模拟用户登录

    首先我们需要客户端和服务器端. 服务器端需要:1.创建ServerSocket对象.2.监听客户端的请求数据.3.获取输入流(对象流)即用户在客户端所发过来的信息.                  ...

  9. 【广州.NET社区推荐】【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性

    原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio ...

  10. ARTS-S centos修改hostname

    hostnamectl set-hostname newhostname 重启