目录
dt网页:
我们是在该网页里选了一个“壁纸”分类作为单独的网页爬取对象:
测试一下能不能拿到图片对应为wb:
from urllib import request
from bs4 import BeautifulSoup
headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}
url="https://www.duitang.com/category/?cat=wallpaper"
req=request.Request(url,headers=headers)
# 通过req对象发起请求,并获取服务器的响应
resp=request.urlopen(req)
# 获取页面内容
# print(resp.read().decode())
bs=BeautifulSoup(resp.read().decode(),"html.parser")
# 爬取堆糖网站的难点在于找到能对应每一个图片的总标签属性
divs=bs.find_all(attrs={"class": "woo"})
# 循环遍历属性下对应的img标签下对应的每一个图片的地址
for div in divs:
print(div.find(name="img").get("src"))
爬取的图片地址如下:
循环遍历地址下载并保存:
from urllib import request
from bs4 import BeautifulSoup
headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}
url="https://www.duitang.com/category/?cat=wallpaper"
req=request.Request(url,headers=headers)
# 通过req对象发起请求,并获取服务器的响应
resp=request.urlopen(req)
# 获取页面内容
# print(resp.read().decode())
bs=BeautifulSoup(resp.read().decode(),"html.parser")
divs=bs.find_all(attrs={"class": "woo"})
# 想要保存的图片命名方式为img加上每一个图的代号
name="img"
i=0
# 循环遍历属性下对应的img标签下对应的每一个图片的地址src
for div in divs:
urlimg=div.find(name="img").get("src")
# 下载图片,urlretrieve()方法直接将远程数据下载到本地,注意桌面上的11597文件夹要自己建立否则会报错文件夹不存在
request.urlretrieve(urlimg,"C:\\Users\\11597\\Desktop\\11597\\"+name+str(i)+".png")
# 容易遗忘,让每一个地址所对应的图片都+1
i=i+1
print("下载结束")
结果如下:
贴一个老师的讲解视频:
爬取图片思路