爬取单张图片

获取单张图片主要是定位到此图片的真实url,采用基本的写入文件方式即可把图片保存到本地

import requests

url = \'http://pic-bucket.ws.126.net/photo/0003/2020-10-18/FP72BDU900AJ0003NOS.jpg\'

resp = requests.get(url).content
with open(\'F:\\BeautifulPictures\my.jpg\', \'wb\') as a:
    a.write(resp)

with open(\'test.txt\',\'r\') as f:
    str = f.read()
    print(str)
    print(\'111\')
    print(str)``

爬取整个网页的图片

获取整个网页的图片,第一步是分析网页图片的展示方式:有一次性加载全部图片的模式;也有逐步加载的模式。第一种模式比较好获取页面中的所有图片,查看源代码的方式可以看到所有图片
的标签信息,根据标签的规律可以直接全部提取出来,然后遍历出图片即可;第二种模式相对来说困难一点,需要借助F12功能,分析出请求图片的真实url,比如网站”https://pic.sogou.com/
上有很多美女图片,但是源代码里面啥图片信息也没有,当使用F12功能时,你会发现真正去请求图片地址的url是”https://pic.sogou.com/pic/action/getWapHomeFeed.jsp?key=homeFeedData&category=feed&start=0&len=10“。它还带了一些参数,你可以改变一下参数试试效果,比如len改成50看看。通过分析可以看到下面这个数据返回结构

import requests
import json
import urllib

def getSogouImag():
    path = "F:/BeautifulPictures/"
    imgs = requests.get(\'https://pic.sogou.com/pic/action/getWapHomeFeed.jsp?key=homeFeedData&category=feed&start=0&len=10\')
    jd = json.loads(imgs.text)
    jd = jd[\'list\']

    count1 = 1
    for array1 in jd:
        dir1 = array1[0][\'category\'] + str(count1)
        print(\'1\'+dir1)
        print(array1)

        count2 = 1
        count1 = count1 + 1
        for array2 in array1:
            dir2 = array2[\'category\'] + str(count2)
            print(\'2\'+dir2)
            print(array2)

            count2 = count2 + 1
            imgs_url = []
            m = 0

            for array3 in array2[\'picList\']:
                print(\'3\')
                print(array3)

                imgs_url.append(array3[\'originImage\'])

            for img_url in imgs_url:
                print(\'***** \' + dir1 + dir2 + str(m) + \'.jpg *****\' + \'   Downloading...\')
                urllib.request.urlretrieve(img_url, path + dir1 + dir2 + str(m) + \'.jpg\')
                m = m + 1

getSogouImag()

代码运行后,抓取的图片保存到本地后的结果如下:,注意这是参数为10的结果,因为是动态加载可以把参数调整到50后再看看效果,由于图片实在太多就不截图了。

版权声明:本文为moyun007原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/moyun007/p/13881926.html