小项目练习-下载爬取堆糖网页图片-python爬虫

小项目-下载堆糖网页图片-python爬虫

直接批量下载网页图片,简单几步

一、观察json代码

从网页的检查进去,点击右箭头的地方后,再将光标锁定在图片上,右边就会对应的代码
可以很容易的看出,每一张图片都存在以a开头的,带有img、有src属性的代码中,src接的内容就是图片链接地址
小项目练习-下载爬取堆糖网页图片-python爬虫_第1张图片

二、下载图片链接

## 要用到的包
import requests
import json
from bs4 import BeautifulSoup
url=r'https://www.duitang.com/search/?kw=%E8%82%96%E6%88%98&limit=1000'   
## limit是图片显示的数量
reg=requests.get(url)
soup=BeautifulSoup(reg.text,'lxml')  ## 读取页面信息
print(soup.prettify())  ## 可免,是为了更好的观察代码

小项目练习-下载爬取堆糖网页图片-python爬虫_第2张图片

## 把图片链接储存到一个list中
t=[]
for s in soup.find_all('a'):
    if 'img' not in str(s):       ## 很明显并不是所有a开头的都是我们要的
        continue       ## 停止开始下一循环
    else:
        d=s.find_all('img')  ## 先把含有图片的a标签下载下来
    t=t+d   
links_pic=[]
for i in range(len(t)):
    a=t[i].attrs['src']   ## 把链接部分保存下来
    links_pic.append(a)
links_pic

小项目练习-下载爬取堆糖网页图片-python爬虫_第3张图片

三、把图片信息保存下来

将链接地址转化为二进制文件保存下来

## 定义一个下载图片的函数
def download_pic(url,i):
    reg=requests.get(url)
    a=r'C:\Users\Administrator\Desktop\python_lec\图片\picture{}.png'  ## 文件夹要先创建好
    path=a.format(i)  ## 按排列顺序命名
    picture=reg.content  ## 将对象转化成二进制
    with open(path,'wb') as f:    ## 存储为文件
         f.write(picture)
            
for i in range(len(links_pic)):   ## 循环遍历图片链接并下载下来
    download_pic(links_pic[i],i)

效果就是这样的
小项目练习-下载爬取堆糖网页图片-python爬虫_第4张图片

你可能感兴趣的:(python项目练习,python,爬虫)