美文网首页加班的日常
python抓取瀑布流网站的图片

python抓取瀑布流网站的图片

作者: 光年尘埃 | 来源:发表于2019-10-14 22:58 被阅读0次

今日需要准备有关烟灰缸的图片数据集,用于烟灰缸检测的目标检测模型的训练。由于目前网上还没有关于烟灰缸的开源数据集,国内的图片网站一般需要收费,而国外的免费图片网站不支持批量下载。因此只能采用网络爬虫的方式去抓取有关烟灰缸的图片数据。

一番调研之后,选择了一家国外的图片网站,网址为:https://unsplash.com

选择该网站的原因有二,一是该网站尚未发现存在反爬虫的设置,相比而言,国内许多网站的反爬虫机制比较完善,抓取这类网站的数据难度较大;二是该网站有大量的图片资源(有一些免费下载图片的网站的资源库相对匮乏)。

该网站在页面显示端采用的是瀑布流,即用户只需要控制滚动条即可实现传统网站中的分页功能。但由于没有了”下一页“按钮的存在,爬虫程序没办法一次性得到所有的网页链接,因此需要对传统的爬虫程序进行改进。

进入浏览器端,通过开发者模式查看前端向后台发送的数据请求。


1571063662799.png

上图是使用谷歌浏览器的示范,进入开发者模式,通过滑动滚动条触发网页的瀑布流机制,并观察开发者工具中network下的XHR所显示的请求信息,并得到请求的URL。通过观察此URL可知,一共有20页,此时处于第7页。
在浏览器端输入URL,可得到服务器端相应数据请求的返回。


1571064086748.png
返回类型是json,并且通过浏览器通过的查找功能可以观察得到需要下载图片的URL所处的位置。
在了解完上述信息之后,下面就可以开始编写爬虫程序。
"""

    烟灰缸图片抓取的样例。

    2019年10月14日14:40:13

"""
import urllib.request
import urllib
import requests

def download_img(paths):
    x = 0
    #一共有20页,i用于遍历所有的页。
    for i in range(1, 21):
        x = (i - 1) * 20
        target_url = 'https://unsplash.com/napi/search/photos?query=ashtray&xp=&per_page=20&page='+str(i)
        #得到网页的json数据
        jsondata = requests.get(target_url)
        data = jsondata.json()["results"]
        #pprint.pprint(data)  # 格式化打印获取的json

        for item in data:
            #得到图片的下载链接
            url = item.get("links").get("download")
            #打开url,下载图片到本地
            urllib.request.urlretrieve(url, '{0}{1}.jpg'.format(paths, x)) 
            x += 1
            print(x)

download_img("D:\\experiments\\datasets\\Ashtray_pics\\")

运行上述爬虫程序即可完成该网站的图片数据的抓取工作。


1571065013414.png 1571065028490.png

相关文章

  • python抓取瀑布流网站的图片

    今日需要准备有关烟灰缸的图片数据集,用于烟灰缸检测的目标检测模型的训练。由于目前网上还没有关于烟灰缸的开源数据集,...

  • python抓取网站图片

    # 抓取豆瓣图片 import urllib.request from html.parserimport HTM...

  • scrapy抓取瀑布流模式图片

    大家好,第一次在简书分享知识,请多指教~~ 搜狗的图片质量实在是太棒了(清晰,大方),好啦,那就开始吧! 目标网页...

  • scrapy抓取瀑布流模式图片

    大家好,第一次在简书分享知识,请多指教~~ 搜狗的图片质量实在是太棒了(清晰,大方),好啦,那就开始吧! 目标网页...

  • 抓取网页异步加载数据

    这里,我用python抓取了knowone发现页面的数据。 异步加载: 异步加载可以实现网页的瀑布流形式向网站进行...

  • python爬虫-抓取网站的图片

    ####第一步 找一个图片比较多的网站,比如http://www.daimg.com ####第二步 打开这个 U...

  • 瀑布流的三种实现

    先来欣赏三个瀑布流的网站 pinterest 淘宝爱逛街 蘑菇街 什么是瀑布流? 瀑布流,又称瀑布流式布局。 这种...

  • python网络爬虫抓取网站图片

    本文介绍两种爬取方式: 1.正则表达式 2.bs4解析Html 以下为正则表达式爬虫,面向对象封装后的代码如下: ...

  • Python 多线程抓取图片效率实验

    Python 多线程抓取图片效率实验 实验目的: 是学习python 多线程的工作原理,及通过抓取400张图片这种...

  • 瀑布流-----响应式

    瀑布流这项技术在现在很流行,各大网站,特别是关于的图片的网站都在利用这项技术来进行图片的布局,来吸引客户的眼...

网友评论

    本文标题:python抓取瀑布流网站的图片

    本文链接:https://www.haomeiwen.com/subject/dindmctx.html