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 ...
随机推荐
- ELK的简单搭建
Environment (都需要Java环境,jdk){ elasticsearch kibana 安装nginx用以测试 logstash } 1.首先拉取软件包,给予Java语言开发首选配置Ja ...
- js中innerHTML和outerHTML的相同与不同
innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML,包括标签. outerHTML 设置或获取对象及其内容的HTML形式,也就是标签和文本内容全都显示出来 innerText ...
- 【CKB.DEV 茶话会】第二期:聊聊 CKB 钱包和 Nervos DAO 全流程
CKB.DEV 茶话会第二期:聊聊 CKB 钱包和 Nervos DAO 全流程 为了鼓励更多优秀的开发者和研究人员参与到 CKB 的开发和生态建设中去,我们希望组织一系列 CKB Developer ...
- [译]C#8.0中一个使接口更加灵活的新特性-默认接口实现
9月份的时候,微软宣布正式发布C#8.0,作为.NET Core 3.0发行版的一部分.C#8.0的新特性之一就是默认接口实现.在本文中,我们将一起来聊聊默认接口实现. 众所周知,对现有应用程序的接口 ...
- C#语言和SQL Server数据库技术_前四章错题
1.在C#中,如果让某个方法只能被它所在的程序集内的其他方法访问,可使用(C)修饰这个方法. (选择一项) A:private B:protected C:internal D:以上都不对 2.下 ...
- [TimLinux] django html如何实现固定表头
1. 需求 表格很长,这个时候就希望表格头部不动,而只是表格内容行支持滚动功能. 2. 方法 两张表:一张表(THeader)负责头部字段的显示,另一张表(TBody)负责内容行字段的显示. 两张表都 ...
- BZOJ 3065 带插入区间K小值(sag套线段树)
3065: 带插入区间K小值 Time Limit: 60 Sec Memory Limit: 512 MBSubmit: 4696 Solved: 1527[Submit][Status][Di ...
- Python numpy的基本操作你一般人都不会
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要最新Python学习资料的小伙伴可以加点击下方链接自行获取 ...
- Dubbo源码分析之 SPI(一)
一.概述 dubbo SPI 在dubbo的作用是基础性的,要想分析研究dubbo的实现原理.dubbo源码,都绕不过 dubbo SPI,掌握dubbo SPI 是征服dubbo的必经之路. 本篇文 ...
- 自动化运维之SaltStack实践
自动化运维之SaltStack实践 1.1.环境 linux-node1(master服务端) 192.168.0.15 linux-node2(minion客户端) 192.168.0.16 1.2 ...