赞
踩
前段时间在知乎看到一篇文章,关于视觉中国如何从腾讯身上扒一层皮的事情。大意就是互联网巨头在没有经过授权的情况下使用了9张来自视觉中国的照片,最后的结果是以赔偿视觉中国4w结束。原文链接:
https://zhuanlan.zhihu.com/p/35045810 感兴趣的可以看看。
当然这对于我们普通人而言几乎没有什么影响。但我们要知道图片版权这回事。
今天带大家爬取的图片网站是:https://unsplash.com/
这里的图片没有版权,你可以随便使用。而且这里面的图片质量都特别高。我的一些图片都是从这上面找的
Ajax加载图片
第一步,请求网页
我们打开网站,下拉页面发现不断加载图片,但是整个页面没有刷新,也就是页面的链接没有变化。其实这个过程就是Aiax加载的过程。
Ajax请求有特殊的类型,它叫做 xhr ,我们打开开发者工具或者按 F12键,切换到Network。
下方切换到 XHR 这里面都是经过Ajax加载的。我们往下多点几个链接发现,下方的三个参数只有 page 在变化,于是我们可以构造这个参数。来提交请求。
- #请求网页返回json数据
- def get_page(page,keyword):
- headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36'
- '(KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
- 'referer': 'https://unsplash.com/'
- }
- url = 'https://unsplash.com/napi/search/photos'
- data = {
- 'page': page,
- 'per_page': 12,
- 'query': keyword
- }
- response = requests.get(url, headers=headers, params=data)
- if response.status_code == 200:
- return response.json()
第二步:解析网页并得到图片链接
接着切换到Prereview选项卡,看到返回的是json数据。继续找发现图片链接在 download 里面,我们复制一个链接在浏览器里打开发现分析的没错。
接下来,再实现一个解析方法:提取每条数据的links字段里的download,将图片的链接返回。
- #得到图片的URL,这里的得到的图片地址仅仅是字符串
- def get_image(json):
- for item in json['results']:
- title = item['id']
- images = item['links']['download']#
- yield{
- 'title':title,
- 'images':images
- }
最后保存到本地
- if '图片2' not in os.listdir('.'):
- os.mkdir('图片2') # 创建文件夹
- path = os.path.join(os.path.abspath('.'),'图片2')
- os.chdir(path) # 进入文件夹下
-
- #这里在请求一下图片的URL得到图片的内容并进行保存
- def save_images(item):
- response = requests.get(item['images'])
- with open(item['title'] + '.jpg', 'wb') as f:
- f.write(response.content)
-
- #调用函数
- if __name__ == '__main__':
- for page in range(1,2):#想爬几页,改这里
- keyword = 'study'#想爬什么类型的改这里
- json = get_page(page,keyword)
- for item in get_image(json):
- print('正在下载:',item)
- save_images(item)

总结
承认自己还有许多不足,代码还有许多可以改进的地方
本文还可以扩展,比如说实现指定关键字work,beauty,nature 等下载图片
代码不是一下子就写出来的,要经过不断调试,出错是很正常的,不断地发现错误并解决才能有所进步。学习的过程中善用搜索引擎,多思考。希望与你一同学习。
原创不易,觉得不错点个赞再走呗。
微信扫一扫
关注该公众号
采集
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。