zoukankan      html  css  js  c++  java
  • Jmeter(四十六)

    1.简介

    上一篇介绍了爬取文章,这一篇宏哥就简单的介绍一下,如何爬取图片然后保存到本地电脑中。网上很多漂亮的壁纸或者是美女、妹子,想自己收藏一些,挨个保存太费时间,那你可以利用爬虫然后批量下载。

    2.爬虫原理

    其实这个和上一篇都是一样的道理,宏哥在啰嗦一遍。Jmeter 的爬虫原理其实很简单,就是对网页提交一个请求,然后把返回的所有 href 提取出来,利用 ForEach 控制器去实现 url 遍历。这样解释是不是很清晰?下面宏哥就来简单介绍一下如何操作。

    3.牛刀小试

    宏哥这里以一个图片网站为例给小伙伴或者童鞋们演示用过程和步骤。

    该网站为动态。网址:https://unsplash.com/

    3.1开始实战

    1、因为是动态网站,所以获取网页内容后,很多图片找不到,使用浏览器F12功能,分析网站的请求,得出:

    网页动态加载请求:https://unsplash.com/napi/photos?page=1&per_page=12&order_by=latest,其中1,代表加载几页,12代表每次加载12张图片;

    图片下载请求:https://unsplash.com/photos/xxx/download?force=true,其中xxx代表每个图片的id。

    2、我们开始使用jmeter爬取网站上的图片。打开Jemter,新建线程组,如下图所示:

    4、添加参数化文件,配置元件->CSV数据文件设置,设置文件路径,编码、变量、间隔符等,如下图所示:

    5、我们现在需要把图片id提取出来,利用强大的正则表达式提取。先分析下网页请求返回的数据,因此宏哥添加一个察看结果树,运行Jmeter,如下图所示:

    6、返回结果,宏哥粘贴并且格式化,如下图所示:

    [{
        "id": "nV8K0uguyiw",
        "created_at": "2020-07-01T18:52:47-04:00",
        "updated_at": "2021-05-23T16:16:03-04:00",
        "promoted_at": null,
        "width": 10920,
        "height": 5880,
        "color": "#c0c0c0",
        "blur_hash": "LCFrS10evKpc.S0KM_-;^+E1E1%L",
        "description": null,
        "alt_description": "man in green zip up jacket beside woman in black shirt",
        "urls": {
            "raw": "https://images.unsplash.com/photo-1593643946890-b5b85ade6451?ixid=MnwxMjA3fDF8MXxhbGx8MXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1593643946890-b5b85ade6451?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDF8MXxhbGx8MXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1593643946890-b5b85ade6451?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDF8MXxhbGx8MXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1593643946890-b5b85ade6451?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDF8MXxhbGx8MXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1593643946890-b5b85ade6451?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDF8MXxhbGx8MXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/nV8K0uguyiw",
            "html": "https://unsplash.com/photos/nV8K0uguyiw",
            "download": "https://unsplash.com/photos/nV8K0uguyiw/download",
            "download_location": "https://api.unsplash.com/photos/nV8K0uguyiw/download?ixid=MnwxMjA3fDF8MXxhbGx8MXx8fHx8fDJ8fDE2MjE4NDA5ODg"
        },
        "categories": [],
        "likes": 499,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": {
            "impression_urls": ["https://secure.insightexpressai.com/adServer/adServerESI.aspx?script=falseu0026bannerID=8281547u0026rnd=[timestamp]u0026gdpr=u0026gdpr_consent=u0026redir=https://secure.insightexpressai.com/adserver/1pixel.gif", "https://secure.insightexpressai.com/adServer/adServerESI.aspx?script=falseu0026bannerID=8468538u0026rnd=[timestamp]u0026DID=mobADIDu0026redir=https://secure.insightexpressai.com/adserver/1pixel.gif"],
            "tagline": "Designed to be the Best",
            "tagline_url": "http://www.dell.com/xps",
            "sponsor": {
                "id": "2DC3GyeqWjI",
                "updated_at": "2021-05-24T03:12:03-04:00",
                "username": "xps",
                "name": "XPS",
                "first_name": "XPS",
                "last_name": null,
                "twitter_username": "Dell",
                "portfolio_url": "http://www.dell.com/xps",
                "bio": "Designed to be the best, with cutting edge technologies, exceptional build quality, unique materials and powerful features.",
                "location": null,
                "links": {
                    "self": "https://api.unsplash.com/users/xps",
                    "html": "https://unsplash.com/@xps",
                    "photos": "https://api.unsplash.com/users/xps/photos",
                    "likes": "https://api.unsplash.com/users/xps/likes",
                    "portfolio": "https://api.unsplash.com/users/xps/portfolio",
                    "following": "https://api.unsplash.com/users/xps/following",
                    "followers": "https://api.unsplash.com/users/xps/followers"
                },
                "profile_image": {
                    "small": "https://images.unsplash.com/profile-1600096866391-b09a1a53451aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                    "medium": "https://images.unsplash.com/profile-1600096866391-b09a1a53451aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                    "large": "https://images.unsplash.com/profile-1600096866391-b09a1a53451aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
                },
                "instagram_username": "dell",
                "total_collections": 0,
                "total_likes": 0,
                "total_photos": 22,
                "accepted_tos": true,
                "for_hire": false
            }
        },
        "user": {
            "id": "2DC3GyeqWjI",
            "updated_at": "2021-05-24T03:12:03-04:00",
            "username": "xps",
            "name": "XPS",
            "first_name": "XPS",
            "last_name": null,
            "twitter_username": "Dell",
            "portfolio_url": "http://www.dell.com/xps",
            "bio": "Designed to be the best, with cutting edge technologies, exceptional build quality, unique materials and powerful features.",
            "location": null,
            "links": {
                "self": "https://api.unsplash.com/users/xps",
                "html": "https://unsplash.com/@xps",
                "photos": "https://api.unsplash.com/users/xps/photos",
                "likes": "https://api.unsplash.com/users/xps/likes",
                "portfolio": "https://api.unsplash.com/users/xps/portfolio",
                "following": "https://api.unsplash.com/users/xps/following",
                "followers": "https://api.unsplash.com/users/xps/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-1600096866391-b09a1a53451aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-1600096866391-b09a1a53451aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-1600096866391-b09a1a53451aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": "dell",
            "total_collections": 0,
            "total_likes": 0,
            "total_photos": 22,
            "accepted_tos": true,
            "for_hire": false
        }
    }, {
        "id": "rfgR_SbTC40",
        "created_at": "2021-05-19T10:35:26-04:00",
        "updated_at": "2021-05-24T02:48:01-04:00",
        "promoted_at": "2021-05-24T02:48:01-04:00",
        "width": 3488,
        "height": 5232,
        "color": "#595959",
        "blur_hash": "LFBM*_nOt6tRt8%Ns:Rj0KtlM{Ri",
        "description": null,
        "alt_description": "black ceramic mug on table",
        "urls": {
            "raw": "https://images.unsplash.com/photo-1621434913400-21cc05e8c461?ixid=MnwxMjA3fDB8MXxhbGx8Mnx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1621434913400-21cc05e8c461?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8Mnx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1621434913400-21cc05e8c461?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8Mnx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1621434913400-21cc05e8c461?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8Mnx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1621434913400-21cc05e8c461?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8Mnx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/rfgR_SbTC40",
            "html": "https://unsplash.com/photos/rfgR_SbTC40",
            "download": "https://unsplash.com/photos/rfgR_SbTC40/download",
            "download_location": "https://api.unsplash.com/photos/rfgR_SbTC40/download?ixid=MnwxMjA3fDB8MXxhbGx8Mnx8fHx8fDJ8fDE2MjE4NDA5ODg"
        },
        "categories": [],
        "likes": 9,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": null,
        "user": {
            "id": "JF1D9mtlosI",
            "updated_at": "2021-05-24T02:57:03-04:00",
            "username": "farzadmohamadi",
            "name": "Farzad Mohamadi",
            "first_name": "Farzad",
            "last_name": "Mohamadi",
            "twitter_username": null,
            "portfolio_url": null,
            "bio": null,
            "location": null,
            "links": {
                "self": "https://api.unsplash.com/users/farzadmohamadi",
                "html": "https://unsplash.com/@farzadmohamadi",
                "photos": "https://api.unsplash.com/users/farzadmohamadi/photos",
                "likes": "https://api.unsplash.com/users/farzadmohamadi/likes",
                "portfolio": "https://api.unsplash.com/users/farzadmohamadi/portfolio",
                "following": "https://api.unsplash.com/users/farzadmohamadi/following",
                "followers": "https://api.unsplash.com/users/farzadmohamadi/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-1621171864819-d610eadcd8bdimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-1621171864819-d610eadcd8bdimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-1621171864819-d610eadcd8bdimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": null,
            "total_collections": 0,
            "total_likes": 12,
            "total_photos": 9,
            "accepted_tos": true,
            "for_hire": false
        }
    }, {
        "id": "cfMW036jByI",
        "created_at": "2020-05-06T15:53:04-04:00",
        "updated_at": "2021-05-24T01:27:02-04:00",
        "promoted_at": "2021-05-24T01:27:02-04:00",
        "width": 3456,
        "height": 5184,
        "color": "#8ca6d9",
        "blur_hash": "LN9a{zMvROjEo~tSV?RiH;x^V?e.",
        "description": null,
        "alt_description": "low angle photography of high rise building",
        "urls": {
            "raw": "https://images.unsplash.com/photo-1588794651085-41fe77330f3e?ixid=MnwxMjA3fDB8MXxhbGx8M3x8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1588794651085-41fe77330f3e?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8M3x8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1588794651085-41fe77330f3e?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8M3x8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1588794651085-41fe77330f3e?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8M3x8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1588794651085-41fe77330f3e?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8M3x8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/cfMW036jByI",
            "html": "https://unsplash.com/photos/cfMW036jByI",
            "download": "https://unsplash.com/photos/cfMW036jByI/download",
            "download_location": "https://api.unsplash.com/photos/cfMW036jByI/download?ixid=MnwxMjA3fDB8MXxhbGx8M3x8fHx8fDJ8fDE2MjE4NDA5ODg"
        },
        "categories": [],
        "likes": 40,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": null,
        "user": {
            "id": "ftB4m4H6ILo",
            "updated_at": "2021-05-24T03:02:09-04:00",
            "username": "hugoclb",
            "name": "Hugo Coulbouée",
            "first_name": "Hugo",
            "last_name": "Coulbouée",
            "twitter_username": "hug0clb",
            "portfolio_url": null,
            "bio": "🏔️ Annecy, 74
    🙋🏼‍♂️ 19 Ans, Autodidacte  📷 Canon EOS 1200d x 50mm",
            "location": "Annecy",
            "links": {
                "self": "https://api.unsplash.com/users/hugoclb",
                "html": "https://unsplash.com/@hugoclb",
                "photos": "https://api.unsplash.com/users/hugoclb/photos",
                "likes": "https://api.unsplash.com/users/hugoclb/likes",
                "portfolio": "https://api.unsplash.com/users/hugoclb/portfolio",
                "following": "https://api.unsplash.com/users/hugoclb/following",
                "followers": "https://api.unsplash.com/users/hugoclb/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-1588794575070-f8694808367aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-1588794575070-f8694808367aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-1588794575070-f8694808367aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": "hugoclb",
            "total_collections": 0,
            "total_likes": 40,
            "total_photos": 39,
            "accepted_tos": true,
            "for_hire": true
        }
    }, {
        "id": "ycnvnL4beLo",
        "created_at": "2021-05-23T14:11:36-04:00",
        "updated_at": "2021-05-24T00:30:02-04:00",
        "promoted_at": "2021-05-24T00:30:02-04:00",
        "width": 2160,
        "height": 3240,
        "color": "#d9d9c0",
        "blur_hash": "LcLpXC%LMxrr_MaexaR*%gRkS#bb",
        "description": null,
        "alt_description": "strawberry juice in clear drinking glass",
        "urls": {
            "raw": "https://images.unsplash.com/photo-1621792907789-666f0e69ea03?ixid=MnwxMjA3fDB8MXxhbGx8NHx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1621792907789-666f0e69ea03?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8NHx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1621792907789-666f0e69ea03?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8NHx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1621792907789-666f0e69ea03?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8NHx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1621792907789-666f0e69ea03?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8NHx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/ycnvnL4beLo",
            "html": "https://unsplash.com/photos/ycnvnL4beLo",
            "download": "https://unsplash.com/photos/ycnvnL4beLo/download",
            "download_location": "https://api.unsplash.com/photos/ycnvnL4beLo/download?ixid=MnwxMjA3fDB8MXxhbGx8NHx8fHx8fDJ8fDE2MjE4NDA5ODg"
        },
        "categories": [],
        "likes": 22,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": null,
        "user": {
            "id": "JUx0LN7P8_o",
            "updated_at": "2021-05-24T03:11:59-04:00",
            "username": "bartoshevicz",
            "name": "Adam Bartoszewicz",
            "first_name": "Adam",
            "last_name": "Bartoszewicz",
            "twitter_username": null,
            "portfolio_url": "https://www.instagram.com/bartoshevicz/",
            "bio": "Hi, I'm a foodie passionate and food photography is becoming my whole life! I hope you're gonna enjoy my delicious work. Join me on my Instagram profile for more and more!",
            "location": "Białystok, Poland",
            "links": {
                "self": "https://api.unsplash.com/users/bartoshevicz",
                "html": "https://unsplash.com/@bartoshevicz",
                "photos": "https://api.unsplash.com/users/bartoshevicz/photos",
                "likes": "https://api.unsplash.com/users/bartoshevicz/likes",
                "portfolio": "https://api.unsplash.com/users/bartoshevicz/portfolio",
                "following": "https://api.unsplash.com/users/bartoshevicz/following",
                "followers": "https://api.unsplash.com/users/bartoshevicz/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-1621607600495-1fd693951525image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-1621607600495-1fd693951525image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-1621607600495-1fd693951525image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": "bartoshevicz",
            "total_collections": 0,
            "total_likes": 41,
            "total_photos": 26,
            "accepted_tos": true,
            "for_hire": false
        }
    }, {
        "id": "5fx4r4qcdXA",
        "created_at": "2021-05-23T13:40:14-04:00",
        "updated_at": "2021-05-24T02:56:53-04:00",
        "promoted_at": "2021-05-24T00:27:02-04:00",
        "width": 5149,
        "height": 3433,
        "color": "#8c8c73",
        "blur_hash": "L9A0XYIC9dxt}@f9ohJA9aX8%1oe",
        "description": null,
        "alt_description": "white and blue smoke illustration",
        "urls": {
            "raw": "https://images.unsplash.com/photo-1621791554700-35b52803f596?ixid=MnwxMjA3fDB8MXxhbGx8NXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1621791554700-35b52803f596?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8NXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1621791554700-35b52803f596?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8NXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1621791554700-35b52803f596?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8NXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1621791554700-35b52803f596?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8NXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/5fx4r4qcdXA",
            "html": "https://unsplash.com/photos/5fx4r4qcdXA",
            "download": "https://unsplash.com/photos/5fx4r4qcdXA/download",
            "download_location": "https://api.unsplash.com/photos/5fx4r4qcdXA/download?ixid=MnwxMjA3fDB8MXxhbGx8NXx8fHx8fDJ8fDE2MjE4NDA5ODg"
        },
        "categories": [],
        "likes": 33,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": null,
        "user": {
            "id": "ogQykx6hk_c",
            "updated_at": "2021-05-24T03:22:05-04:00",
            "username": "pawel_czerwinski",
            "name": "Pawel Czerwinski",
            "first_name": "Pawel",
            "last_name": "Czerwinski",
            "twitter_username": null,
            "portfolio_url": "http://paypal.me/pmcze",
            "bio": "If you'd like to support me, you can consider a donation ❤ In case you have any questions about how you can use the photos, please read https://help.unsplash.com/en/collections/1463188-unsplash-license 👍 ||| www.instagram.com/pmcze",
            "location": "Poland",
            "links": {
                "self": "https://api.unsplash.com/users/pawel_czerwinski",
                "html": "https://unsplash.com/@pawel_czerwinski",
                "photos": "https://api.unsplash.com/users/pawel_czerwinski/photos",
                "likes": "https://api.unsplash.com/users/pawel_czerwinski/likes",
                "portfolio": "https://api.unsplash.com/users/pawel_czerwinski/portfolio",
                "following": "https://api.unsplash.com/users/pawel_czerwinski/following",
                "followers": "https://api.unsplash.com/users/pawel_czerwinski/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-1592328433409-d9ce8a5333eaimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-1592328433409-d9ce8a5333eaimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-1592328433409-d9ce8a5333eaimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": "pmcze",
            "total_collections": 21,
            "total_likes": 29930,
            "total_photos": 1118,
            "accepted_tos": true,
            "for_hire": false
        }
    }, {
        "id": "DTPY6b0RMRk",
        "created_at": "2021-05-21T00:09:13-04:00",
        "updated_at": "2021-05-24T00:50:37-04:00",
        "promoted_at": null,
        "width": 8688,
        "height": 5792,
        "color": "#f3f3f3",
        "blur_hash": "LeH2cgIUs:-:~qofRjt7xctQWAWC",
        "description": null,
        "alt_description": "woman using Surface laptop",
        "urls": {
            "raw": "https://images.unsplash.com/photo-1621570072965-b25917de6ec9?ixid=MnwxMjA3fDF8MXxhbGx8Nnx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1621570072965-b25917de6ec9?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDF8MXxhbGx8Nnx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1621570072965-b25917de6ec9?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDF8MXxhbGx8Nnx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1621570072965-b25917de6ec9?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDF8MXxhbGx8Nnx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1621570072965-b25917de6ec9?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDF8MXxhbGx8Nnx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/DTPY6b0RMRk",
            "html": "https://unsplash.com/photos/DTPY6b0RMRk",
            "download": "https://unsplash.com/photos/DTPY6b0RMRk/download",
            "download_location": "https://api.unsplash.com/photos/DTPY6b0RMRk/download?ixid=MnwxMjA3fDF8MXxhbGx8Nnx8fHx8fDJ8fDE2MjE4NDA5ODg"
        },
        "categories": [],
        "likes": 5,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": {
            "impression_urls": ["https://secure.insightexpressai.com/adServer/adServerESI.aspx?script=falseu0026bannerID=8742296u0026rnd=[timestamp]u0026redir=https://secure.insightexpressai.com/adserver/1pixel.gif"],
            "tagline": "Original by design",
            "tagline_url": null,
            "sponsor": {
                "id": "N-JSeSTCz68",
                "updated_at": "2021-05-24T02:56:58-04:00",
                "username": "surface",
                "name": "Surface",
                "first_name": "Surface",
                "last_name": null,
                "twitter_username": "surface",
                "portfolio_url": "http://surface.com",
                "bio": "Follow us @Surface. #OriginalByDesign",
                "location": null,
                "links": {
                    "self": "https://api.unsplash.com/users/surface",
                    "html": "https://unsplash.com/@surface",
                    "photos": "https://api.unsplash.com/users/surface/photos",
                    "likes": "https://api.unsplash.com/users/surface/likes",
                    "portfolio": "https://api.unsplash.com/users/surface/portfolio",
                    "following": "https://api.unsplash.com/users/surface/following",
                    "followers": "https://api.unsplash.com/users/surface/followers"
                },
                "profile_image": {
                    "small": "https://images.unsplash.com/profile-1587651800415-20eed2ec0209image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                    "medium": "https://images.unsplash.com/profile-1587651800415-20eed2ec0209image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                    "large": "https://images.unsplash.com/profile-1587651800415-20eed2ec0209image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
                },
                "instagram_username": "surface",
                "total_collections": 0,
                "total_likes": 0,
                "total_photos": 141,
                "accepted_tos": true,
                "for_hire": false
            }
        },
        "user": {
            "id": "N-JSeSTCz68",
            "updated_at": "2021-05-24T02:56:58-04:00",
            "username": "surface",
            "name": "Surface",
            "first_name": "Surface",
            "last_name": null,
            "twitter_username": "surface",
            "portfolio_url": "http://surface.com",
            "bio": "Follow us @Surface. #OriginalByDesign",
            "location": null,
            "links": {
                "self": "https://api.unsplash.com/users/surface",
                "html": "https://unsplash.com/@surface",
                "photos": "https://api.unsplash.com/users/surface/photos",
                "likes": "https://api.unsplash.com/users/surface/likes",
                "portfolio": "https://api.unsplash.com/users/surface/portfolio",
                "following": "https://api.unsplash.com/users/surface/following",
                "followers": "https://api.unsplash.com/users/surface/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-1587651800415-20eed2ec0209image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-1587651800415-20eed2ec0209image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-1587651800415-20eed2ec0209image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": "surface",
            "total_collections": 0,
            "total_likes": 0,
            "total_photos": 141,
            "accepted_tos": true,
            "for_hire": false
        }
    }, {
        "id": "TxgPq_TRXtQ",
        "created_at": "2021-05-22T16:33:09-04:00",
        "updated_at": "2021-05-23T23:57:01-04:00",
        "promoted_at": "2021-05-23T23:57:01-04:00",
        "width": 1889,
        "height": 2700,
        "color": "#26260c",
        "blur_hash": "LEC7TPl9tkNe-oi^tkoy?]IBIBxt",
        "description": null,
        "alt_description": "black and brown car steering wheel",
        "urls": {
            "raw": "https://images.unsplash.com/photo-1621715070889-7bcdef6fdcf9?ixid=MnwxMjA3fDB8MXxhbGx8N3x8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1621715070889-7bcdef6fdcf9?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8N3x8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1621715070889-7bcdef6fdcf9?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8N3x8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1621715070889-7bcdef6fdcf9?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8N3x8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1621715070889-7bcdef6fdcf9?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8N3x8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/TxgPq_TRXtQ",
            "html": "https://unsplash.com/photos/TxgPq_TRXtQ",
            "download": "https://unsplash.com/photos/TxgPq_TRXtQ/download",
            "download_location": "https://api.unsplash.com/photos/TxgPq_TRXtQ/download?ixid=MnwxMjA3fDB8MXxhbGx8N3x8fHx8fDJ8fDE2MjE4NDA5ODg"
        },
        "categories": [],
        "likes": 23,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": null,
        "user": {
            "id": "bCBUCaMNruM",
            "updated_at": "2021-05-24T03:12:07-04:00",
            "username": "kapsan",
            "name": "Christian Casapu",
            "first_name": "Christian",
            "last_name": "Casapu",
            "twitter_username": null,
            "portfolio_url": null,
            "bio": null,
            "location": "Chisinau, R.Moldova",
            "links": {
                "self": "https://api.unsplash.com/users/kapsan",
                "html": "https://unsplash.com/@kapsan",
                "photos": "https://api.unsplash.com/users/kapsan/photos",
                "likes": "https://api.unsplash.com/users/kapsan/likes",
                "portfolio": "https://api.unsplash.com/users/kapsan/portfolio",
                "following": "https://api.unsplash.com/users/kapsan/following",
                "followers": "https://api.unsplash.com/users/kapsan/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-1579130062098-16c790ae3ccdimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-1579130062098-16c790ae3ccdimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-1579130062098-16c790ae3ccdimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": "kapsann",
            "total_collections": 0,
            "total_likes": 37,
            "total_photos": 10,
            "accepted_tos": true,
            "for_hire": true
        }
    }, {
        "id": "m3mYumV2lag",
        "created_at": "2021-05-23T12:32:40-04:00",
        "updated_at": "2021-05-23T23:03:01-04:00",
        "promoted_at": "2021-05-23T23:03:01-04:00",
        "width": 3690,
        "height": 5535,
        "color": "#f3f3f3",
        "blur_hash": "L]JuP^t6a#j]_4s:j@a}oJs:jZWV",
        "description": "Three men standing in green field in front of Grand Teton mountain range",
        "alt_description": null,
        "urls": {
            "raw": "https://images.unsplash.com/photo-1621787211915-83d2cbcf8946?ixid=MnwxMjA3fDB8MXxhbGx8OHx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1621787211915-83d2cbcf8946?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8OHx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1621787211915-83d2cbcf8946?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8OHx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1621787211915-83d2cbcf8946?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8OHx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1621787211915-83d2cbcf8946?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8OHx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/m3mYumV2lag",
            "html": "https://unsplash.com/photos/m3mYumV2lag",
            "download": "https://unsplash.com/photos/m3mYumV2lag/download",
            "download_location": "https://api.unsplash.com/photos/m3mYumV2lag/download?ixid=MnwxMjA3fDB8MXxhbGx8OHx8fHx8fDJ8fDE2MjE4NDA5ODg"
        },
        "categories": [],
        "likes": 20,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": null,
        "user": {
            "id": "MpbJ8qGW8bo",
            "updated_at": "2021-05-24T03:02:11-04:00",
            "username": "jonahbrown",
            "name": "Jonah Brown",
            "first_name": "Jonah",
            "last_name": "Brown",
            "twitter_username": "jonahbrown24",
            "portfolio_url": "https://www.youtube.com/channel/UCxkaphHTf-hlcrh6-Q6FPLg/videos",
            "bio": "Michigan based filmmaker that likes to snap photos between takes.",
            "location": "Kalamazoo, MI",
            "links": {
                "self": "https://api.unsplash.com/users/jonahbrown",
                "html": "https://unsplash.com/@jonahbrown",
                "photos": "https://api.unsplash.com/users/jonahbrown/photos",
                "likes": "https://api.unsplash.com/users/jonahbrown/likes",
                "portfolio": "https://api.unsplash.com/users/jonahbrown/portfolio",
                "following": "https://api.unsplash.com/users/jonahbrown/following",
                "followers": "https://api.unsplash.com/users/jonahbrown/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-1605920877157-3a1ac2126072image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-1605920877157-3a1ac2126072image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-1605920877157-3a1ac2126072image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": "joenuh",
            "total_collections": 0,
            "total_likes": 5,
            "total_photos": 124,
            "accepted_tos": true,
            "for_hire": true
        }
    }, {
        "id": "Pu9uW0IHNEg",
        "created_at": "2021-05-22T16:47:43-04:00",
        "updated_at": "2021-05-24T03:21:57-04:00",
        "promoted_at": "2021-05-23T20:36:01-04:00",
        "width": 3225,
        "height": 4837,
        "color": "#f3f3f3",
        "blur_hash": "LvNA6m-;M{of9FR%R%WB0JofxbWB",
        "description": null,
        "alt_description": "woman in brown jacket standing beside white wall",
        "urls": {
            "raw": "https://images.unsplash.com/photo-1621716456281-f6d0ce70764f?ixid=MnwxMjA3fDB8MXxhbGx8OXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1621716456281-f6d0ce70764f?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8OXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1621716456281-f6d0ce70764f?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8OXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1621716456281-f6d0ce70764f?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8OXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1621716456281-f6d0ce70764f?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8OXx8fHx8fDJ8fDE2MjE4NDA5ODgu0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/Pu9uW0IHNEg",
            "html": "https://unsplash.com/photos/Pu9uW0IHNEg",
            "download": "https://unsplash.com/photos/Pu9uW0IHNEg/download",
            "download_location": "https://api.unsplash.com/photos/Pu9uW0IHNEg/download?ixid=MnwxMjA3fDB8MXxhbGx8OXx8fHx8fDJ8fDE2MjE4NDA5ODg"
        },
        "categories": [],
        "likes": 17,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": null,
        "user": {
            "id": "ftB4m4H6ILo",
            "updated_at": "2021-05-24T03:02:09-04:00",
            "username": "hugoclb",
            "name": "Hugo Coulbouée",
            "first_name": "Hugo",
            "last_name": "Coulbouée",
            "twitter_username": "hug0clb",
            "portfolio_url": null,
            "bio": "🏔️ Annecy, 74
    🙋🏼‍♂️ 19 Ans, Autodidacte  📷 Canon EOS 1200d x 50mm",
            "location": "Annecy",
            "links": {
                "self": "https://api.unsplash.com/users/hugoclb",
                "html": "https://unsplash.com/@hugoclb",
                "photos": "https://api.unsplash.com/users/hugoclb/photos",
                "likes": "https://api.unsplash.com/users/hugoclb/likes",
                "portfolio": "https://api.unsplash.com/users/hugoclb/portfolio",
                "following": "https://api.unsplash.com/users/hugoclb/following",
                "followers": "https://api.unsplash.com/users/hugoclb/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-1588794575070-f8694808367aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-1588794575070-f8694808367aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-1588794575070-f8694808367aimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": "hugoclb",
            "total_collections": 0,
            "total_likes": 40,
            "total_photos": 39,
            "accepted_tos": true,
            "for_hire": true
        }
    }, {
        "id": "G_iXK9l8l7Q",
        "created_at": "2021-05-21T14:20:27-04:00",
        "updated_at": "2021-05-23T20:21:02-04:00",
        "promoted_at": "2021-05-23T20:21:02-04:00",
        "width": 3998,
        "height": 4997,
        "color": "#262626",
        "blur_hash": "LUA^UYt7Rjxu_NofRjxu_3ofV@t7",
        "description": null,
        "alt_description": "green trees on brown wooden bridge during daytime",
        "urls": {
            "raw": "https://images.unsplash.com/photo-1621620844630-ecd55a95b7ff?ixid=MnwxMjA3fDB8MXxhbGx8MTB8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1621620844630-ecd55a95b7ff?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTB8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1621620844630-ecd55a95b7ff?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTB8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1621620844630-ecd55a95b7ff?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTB8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1621620844630-ecd55a95b7ff?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTB8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/G_iXK9l8l7Q",
            "html": "https://unsplash.com/photos/G_iXK9l8l7Q",
            "download": "https://unsplash.com/photos/G_iXK9l8l7Q/download",
            "download_location": "https://api.unsplash.com/photos/G_iXK9l8l7Q/download?ixid=MnwxMjA3fDB8MXxhbGx8MTB8fHx8fHwyfHwxNjIxODQwOTg4"
        },
        "categories": [],
        "likes": 43,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": null,
        "user": {
            "id": "piOet34tl5o",
            "updated_at": "2021-05-24T03:07:10-04:00",
            "username": "nathanmcdine",
            "name": "Nathan McDine",
            "first_name": "Nathan",
            "last_name": "McDine",
            "twitter_username": "nathanmcdine",
            "portfolio_url": "https://www.nathanmcdine.co.uk",
            "bio": "Photographer | Marketer 📸
     If you like my content, be sure to check out my Instagram (@nathanmcdine).",
            "location": "UK",
            "links": {
                "self": "https://api.unsplash.com/users/nathanmcdine",
                "html": "https://unsplash.com/@nathanmcdine",
                "photos": "https://api.unsplash.com/users/nathanmcdine/photos",
                "likes": "https://api.unsplash.com/users/nathanmcdine/likes",
                "portfolio": "https://api.unsplash.com/users/nathanmcdine/portfolio",
                "following": "https://api.unsplash.com/users/nathanmcdine/following",
                "followers": "https://api.unsplash.com/users/nathanmcdine/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-1621620707567-e2050adbc1eaimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-1621620707567-e2050adbc1eaimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-1621620707567-e2050adbc1eaimage?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": "nathanmcdine",
            "total_collections": 2,
            "total_likes": 245,
            "total_photos": 143,
            "accepted_tos": true,
            "for_hire": true
        }
    }, {
        "id": "k94wMXMHFbE",
        "created_at": "2021-05-23T01:27:15-04:00",
        "updated_at": "2021-05-24T01:25:07-04:00",
        "promoted_at": "2021-05-23T20:06:02-04:00",
        "width": 5584,
        "height": 8368,
        "color": "#d9d9d9",
        "blur_hash": "LvHMDpM{j]ay_4RkbFj[X9W=ayay",
        "description": null,
        "alt_description": "green lake near mountain during daytime",
        "urls": {
            "raw": "https://images.unsplash.com/photo-1621747609281-38853764c986?ixid=MnwxMjA3fDB8MXxhbGx8MTF8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1621747609281-38853764c986?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTF8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1621747609281-38853764c986?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTF8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1621747609281-38853764c986?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTF8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1621747609281-38853764c986?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTF8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/k94wMXMHFbE",
            "html": "https://unsplash.com/photos/k94wMXMHFbE",
            "download": "https://unsplash.com/photos/k94wMXMHFbE/download",
            "download_location": "https://api.unsplash.com/photos/k94wMXMHFbE/download?ixid=MnwxMjA3fDB8MXxhbGx8MTF8fHx8fHwyfHwxNjIxODQwOTg4"
        },
        "categories": [],
        "likes": 63,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": null,
        "user": {
            "id": "NyI9CHJbx1I",
            "updated_at": "2021-05-24T03:02:12-04:00",
            "username": "visuallert",
            "name": "Jonas Allert",
            "first_name": "Jonas",
            "last_name": "Allert",
            "twitter_username": null,
            "portfolio_url": "http://visenda.com",
            "bio": "hi, I'm looking forward to share awesomeness here!",
            "location": "ulm, germany",
            "links": {
                "self": "https://api.unsplash.com/users/visuallert",
                "html": "https://unsplash.com/@visuallert",
                "photos": "https://api.unsplash.com/users/visuallert/photos",
                "likes": "https://api.unsplash.com/users/visuallert/likes",
                "portfolio": "https://api.unsplash.com/users/visuallert/portfolio",
                "following": "https://api.unsplash.com/users/visuallert/following",
                "followers": "https://api.unsplash.com/users/visuallert/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-1601380918797-a7236651e5f0image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-1601380918797-a7236651e5f0image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-1601380918797-a7236651e5f0image?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": "visuallert",
            "total_collections": 3,
            "total_likes": 124,
            "total_photos": 120,
            "accepted_tos": true,
            "for_hire": true
        }
    }, {
        "id": "rMXsuun3CuQ",
        "created_at": "2021-05-20T11:09:09-04:00",
        "updated_at": "2021-05-23T20:00:01-04:00",
        "promoted_at": "2021-05-23T20:00:01-04:00",
        "width": 6720,
        "height": 4480,
        "color": "#d9a6a6",
        "blur_hash": "LIKc*1wG0f9s^hVr-oxrScWBr=t3",
        "description": null,
        "alt_description": null,
        "urls": {
            "raw": "https://images.unsplash.com/photo-1621523133136-cea844f32bdf?ixid=MnwxMjA3fDB8MXxhbGx8MTJ8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1",
            "full": "https://images.unsplash.com/photo-1621523133136-cea844f32bdf?crop=entropyu0026cs=srgbu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTJ8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=85",
            "regular": "https://images.unsplash.com/photo-1621523133136-cea844f32bdf?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTJ8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=80u0026w=1080",
            "small": "https://images.unsplash.com/photo-1621523133136-cea844f32bdf?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTJ8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=80u0026w=400",
            "thumb": "https://images.unsplash.com/photo-1621523133136-cea844f32bdf?crop=entropyu0026cs=tinysrgbu0026fit=maxu0026fm=jpgu0026ixid=MnwxMjA3fDB8MXxhbGx8MTJ8fHx8fHwyfHwxNjIxODQwOTg4u0026ixlib=rb-1.2.1u0026q=80u0026w=200"
        },
        "links": {
            "self": "https://api.unsplash.com/photos/rMXsuun3CuQ",
            "html": "https://unsplash.com/photos/rMXsuun3CuQ",
            "download": "https://unsplash.com/photos/rMXsuun3CuQ/download",
            "download_location": "https://api.unsplash.com/photos/rMXsuun3CuQ/download?ixid=MnwxMjA3fDB8MXxhbGx8MTJ8fHx8fHwyfHwxNjIxODQwOTg4"
        },
        "categories": [],
        "likes": 20,
        "liked_by_user": false,
        "current_user_collections": [],
        "sponsorship": null,
        "user": {
            "id": "M8EEMP5UPD8",
            "updated_at": "2021-05-24T02:41:56-04:00",
            "username": "colincyruz",
            "name": "Colin Michel",
            "first_name": "Colin",
            "last_name": "Michel",
            "twitter_username": null,
            "portfolio_url": null,
            "bio": null,
            "location": null,
            "links": {
                "self": "https://api.unsplash.com/users/colincyruz",
                "html": "https://unsplash.com/@colincyruz",
                "photos": "https://api.unsplash.com/users/colincyruz/photos",
                "likes": "https://api.unsplash.com/users/colincyruz/likes",
                "portfolio": "https://api.unsplash.com/users/colincyruz/portfolio",
                "following": "https://api.unsplash.com/users/colincyruz/following",
                "followers": "https://api.unsplash.com/users/colincyruz/followers"
            },
            "profile_image": {
                "small": "https://images.unsplash.com/profile-fb-1621522556-3815074e04d0.jpg?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=32u0026w=32",
                "medium": "https://images.unsplash.com/profile-fb-1621522556-3815074e04d0.jpg?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=64u0026w=64",
                "large": "https://images.unsplash.com/profile-fb-1621522556-3815074e04d0.jpg?ixlib=rb-1.2.1u0026q=80u0026fm=jpgu0026crop=facesu0026cs=tinysrgbu0026fit=cropu0026h=128u0026w=128"
            },
            "instagram_username": null,
            "total_collections": 0,
            "total_likes": 0,
            "total_photos": 9,
            "accepted_tos": true,
            "for_hire": false
        }
    }]

    6、从上边返回的是json格式,第一个id就是图片id。我们可以利用id提取数据,"id":"(.*?)",括号里就是需要提取的数据。如下图所示:

    7、从上图我们可以清楚地看出正则匹配的总数是26,远远超过了图片总数12张,因此提取的还有其他的id。我们继续分析,看到在user里也有一个id,这个id并不是图片的id,用这个id去下载图片,会报404错误,我们用刚才的正则会把这个id提取出来。继续分析数据,发现download链接,没个图片除了id不一样,其他都一样,user里没有这个链接,我们用这个链接提取数据 "download":"https://unsplash.com/photos/(.*?)/download。如下图所示:

    8、从上图我们看到提取匹配总数是12,正确,因此我们需要添加一个正则提取器,将以上的正则表达式填写到正则提取器中,记得匹配数字填-1,把所有匹配的都提取出来,如下图所示:

    9、我们添加一个sampler->Debug Sampler,查看一下是否真的取出我们想要的数据了,如下图所示:

    10、保存后,运行Jmeter,点击察看结果树,查看取出的数据,说明id已经被我们取出来了,如下图所示:

    11、接下来需要用我们的foreach控制器了 ,对所有的id进行遍历,在控制器里输入变量名称,就是正则表达式里的变量名,如下图所示:

    12、在foreach控制器下面再添加一个http请求,用于下载图片  ,就是我们开头写明的下载图片请求,设置与第一个http请求一致,记得将id参数化,用表达式里变量名即可,如下图所示:

    13、发送图片下载请求后,我们使用beanshell将图片保存到本地,在请求下,添加后置处理器->BeanShell PostProcessor,编写保存图片脚本,如下图所示:

    14、保存图片脚本参考代码如下:

    import java.io.*;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    Date date = new Date();
    date.getDate();
    SimpleDateFormat df = new SimpleDateFormat("yyyymmdd-HHmmss");
    String formate = df.format(date);
    //string name = vars.get("imgid");
    byte[] result = prev.getResponseData();  //这个是获取到请求返回的数据,prev是获取上个请求的返回
    String file_name = "E:\photos\" + formate + ".jpg"; //代表存放文件的位置和文件名
    File file = new File(file_name);
    FileOutputStream out = new FileOutputStream(file);
    out.write(result);
    out.close();

    15、下面我们就可以见证奇迹的时刻了,运行完毕后,察看结果树可以看到运行结果,存放路径中,可以看到下载的图片了,如下图所示:

    4.小结

    1.在保存到本地图片要创建你代码里写的路径,或者代码中判断有就不创建,没有就创建。
    2.主要你的正则表达式是否真的提取到了你需要的数据。
    3.细心地小伙伴看到我这里只有12张,但是参数可以循环3次,36张,这是怎么回事了,那是因为宏哥的线程组是1,所以就是12张了。
    4.熟练地掌握正则表达式的用法。这里最重要的一步就是正则表达式提取我们想要的关键数据

    好了,关于Jmeter爬虫就到这里吧,其实和上一篇的内容也差不多少。



        感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
        如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的将是我最大的写作动力!另外您也可以选择关注我,可以很方便找到我!
        本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/du-hong 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!
    个人微信公众号 个人微信
  • 相关阅读:
    咨询
    xcode技巧
    礼仪
    asi 网络框架
    iOS 开发问题 书籍 价值 改名 创业大赛app
    PS,UI,美工
    运营推广
    多线程 并发 文章
    手机技巧 文章
    javaScript 类文章
  • 原文地址:https://www.cnblogs.com/du-hong/p/14817788.html
Copyright © 2011-2022 走看看