python3 TensorFlow训练数据集准备 下载一些百度图片 入门级爬虫示例
从百度图片下载一些图片当做训练集,好久没写爬虫,生疏了。没有任何反爬,随便抓。
网页:

动态加载,往下划会出现更多的图片,一次大概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=©right=&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训练数据集准备 下载一些百度图片 入门级爬虫示例的更多相关文章
- 百度图片爬虫-python版-如何爬取百度图片?
上一篇我写了如何爬取百度网盘的爬虫,在这里还是重温一下,把链接附上: http://www.cnblogs.com/huangxie/p/5473273.html 这一篇我想写写如何爬取百度图片的爬虫 ...
- TensorFlow训练MNIST数据集(1) —— softmax 单层神经网络
1.MNIST数据集简介 首先通过下面两行代码获取到TensorFlow内置的MNIST数据集: from tensorflow.examples.tutorials.mnist import inp ...
- Tensorflow 2 flower_photos花卉数据集手动下载、离线安装、本地加载、快速读取
Tensorflow 2 flower_photos花卉数据集手动下载.离线安装.本地加载.快速读取 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.c ...
- Tensorflow 2 Cifar10离线数据集手动下载、离线安装、本地加载、快速读取
Tensorflow 2 Cifar10离线数据集手动下载.离线安装.本地加载.快速读取 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 查 ...
- 利用tensorflow训练简单的生成对抗网络GAN
对抗网络是14年Goodfellow Ian在论文Generative Adversarial Nets中提出来的. 原理方面,对抗网络可以简单归纳为一个生成器(generator)和一个判断器(di ...
- 2、TensorFlow训练MNIST
装载自:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html TensorFlow训练MNIST 这个教程的目标读者是对机器学习和T ...
- Tensorflow MNIST 数据集测试代码入门
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50614444 测试代码已上传至GitH ...
- Tensorflow MNIST 数据集測试代码入门
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50614444 測试代码已上传至GitH ...
- TensorFlow.训练_资料(有视频)
ZC:自己训练 的文章 貌似 能度娘出来很多,得 自己弄过才知道哪些个是坑 哪些个好用...(在CSDN文章的右侧 也有列出很多相关的文章链接)(貌似 度娘的关键字是"TensorFlow ...
随机推荐
- 《Windows内核安全与驱动开发》 2.3 重要的数据结构
<Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 2.3 重要的数据结构 一.驱动对象 Windows内核采用__的编程方式 ...
- nginx部署安装
首先需要下载Nginx软件包 nginx软件官方下载地址:[nginx官方下载连接](http://www.nginx.org) 建议选择稳定的软件版本,如果练习使用当然是无所谓,随便什么版本都可以, ...
- 大型情感剧集Selenium:9_selenium配合Pillow完成浏览器局部截图
网页截图 上次提到了selenium的四种截图方法,最终截图了整张网页.但很多时候,我们仅仅需要截图部分的内容.比如截取某个关键信息,或者现在已经不常见的截图验证码(现在都是各种按规则点击-).那么我 ...
- 一条数据的HBase之旅,简明HBase入门教程4:集群角色
[摘要] 本文主要介绍HBase与HDFS的关系,一些关键进程角色,以及在部署上的建议 HBase与HDFS 我们都知道HBase的数据是存储于HDFS里面的,相信大家也都有这么的认知: HBase是 ...
- 消息通知机制(NSNotification和NSNotificationCenter)
作者:FlyElephant 出处:http://www.cnblogs.com/xiaofeixiang iOS中委托模式和消息机制基本上开发中用到的比较多,一般最开始页面传值通过委托实现的比较多, ...
- python笔记01
一.编码: (一)编码分类 ①ascii编码: 占有1个字节,8位,可表示2**8个字符,(py2默认编码方式). ②unicode: 万国码,占有4个字节,32位,可表示2**32个字符. ③utf ...
- [TimLinux] django context_processor介绍
1. context django里面 render 函数,HttpResponse,都有一个参数,context={},这个参数用于将视图层处理得到的数据传递到模板层. 2. context_pro ...
- BZOJ 3065 带插入区间K小值(sag套线段树)
3065: 带插入区间K小值 Time Limit: 60 Sec Memory Limit: 512 MBSubmit: 4696 Solved: 1527[Submit][Status][Di ...
- jvm调优、常用工具
ps -ef | grep java查出进程id jmap -heap ID 查出jvm配置信息 加入参数:打印Gc日志,分析 GC日志分析工具: GCeasy 降低minor gc 和 full g ...
- CentOS6.8系统最小化安装
一.CentOS系统版本 CentOS-6.8-x86_64 二.安装系统 1.打开VMware主页点击创建虚拟机 2.选择镜像 3.启动虚拟机 4.键入回车键直接进行安装 5.按Tab键选择Skip ...