import requests
from bs4 import BeautifulSoup
import time
url = '图片地址'
#在F盘新建photo文件夹,引入地址方便相片存放
result_path = 'F:\\photo\\'
#refere 模拟访问来源为本站,防止网址拒绝下载出现403,User-Agent 文件头。
headers = {'referer': '图片首页','User-Agent':"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 "}
#谷歌检查发现相片地址全在源代码里,以下一步就是取得相片网页全部代码,方便提取具体地址
r = requests.get(url)
#以下保存为文本
text = r.text
#以下整理成BeautifulSoup能认的格式,方便提取
soup = BeautifulSoup(text,'html.parser')
#以下遍历整个网页,找到所有包含图片的标签,例子

<img class="lazyload" src="图片地址.jpg" style="display: inline;">
#img class="lazyload 就是找所有包含有这段代码的标签,里面包含的都是图片地址
div_list = soup.find_all(name='img',attrs = {'class':'lazyload'})
#用print(div_list)打印输出了了下,发现首尾都有个空格,先把空格去掉
div_list = div_list[1:-1]
#现在剩下的就是所有有图片地址的标签,开始循环找出SRC后面的  图片地址.jpg  
for img in div_list :#img初值为0,不断从div_list取出下标,循环到div_list数组全取完
     img_url = img.get('src')
#每取出一个 图片地址.jpg的地址,就请求一下,把图片以二进制下载回来,并保存到content
     content = requests.get(img_url,headers= headers).content
# 打开F盘下的photo文件夹,把图片以图片名字命名,
     with open (result_path + img_url[-13:],'wb') as f:
#以图片原来格式二进制保存下来
        f.write(content)
#界面打印输出图片已被下载
     print(img_url[-13:] + '已被下载')
#等个2秒,需不需要等待看情况,不出现403的,直接不等
     time.sleep(2)

print("图片已全部下载完成")
最后修改:2020 年 10 月 11 日
如果觉得我的文章对你有用,请随意赞赏