当前位置 博文首页 > Aaron_Yang:BeautifulSoup案例2——抓取优美图库
????网站地址:https://www.umei.net/bizhitupian/weimeibizhi/
?????注意我选中的这个区域, 我们想要的图片就在这里. 但是, 绝对不是现在你看到的样子。为什么呢? 不够高清大图~
?????真正的高清大图在子页面中, 比如, 我点击第?个图片
????我需要在网站的首页中, 找到子页面的链接, 然后请求到子页面,才能看到这张大图~
????也就是说, 想要下载该网站图片(高清大图), 需要三步,
????第?步, 在主页面中拿到每?个图片的子页面链接
????第二步, 在子页面中找到真正的图片下载地址
????第三步, 下载图片
# 1.拿到主页面的源代码,然后提取到子页面的链接,href
# 2.通过href拿到子页面的内容,从子页面找到图片的下载地址 img->src
# 3.下载图片
import requests
from bs4 import BeautifulSoup
import time
url = "https://www.umei.net/bizhitupian/weimeibizhi/"
resp = requests.get(url)
resp.encoding="utf-8"
# print(resp.text)
# 把源代码交给bs
main_page = BeautifulSoup(resp.text,"html.parser")
alist = main_page.find("div",class_="TypeList").find_all("a") # 把范围第一次缩小
# print(alist)
for a in alist:
href = "https://www.umei.net"+a.get('href') # 直接通过get就可以拿到属性的值 第一步完成
# 拿到子页面的源代码
child_page_resp = requests.get(href)
child_page_resp.encoding = 'utf-8'
child_page_text = child_page_resp.text
# 从子页面中拿到图片的下载路径
child_page = BeautifulSoup(child_page_text,"html.parser")
p = child_page.find("p",align="center") # p标签
img = p.find("img") # img标签
src = img.get("src")
# print(src)
# 下载图片
img_resp = requests.get(src)
# img_resp.content # 这里拿到的字节
img_name = src.split("/")[-1] # 拿到url中的最后一个/以后的内容
with open("img/"+img_name,mode="wb") as f:
f.write(img_resp.content) # 图片内容写入文件
print("over! ",img_name)
time.sleep(1)
f.close()
resp.close()