爬取中国石油大学校园文化主页中的图片

爬取中国石油大学校园文化主页中的图片


打开中国石油大学(华东)校园文化主页http://www.upc.edu.cn/xygk/xywh.htm 。 在当前文件夹动态建立一个目录images,将校名、校标等图片用爬虫爬取下来,并以对应的名称存储在images文件夹下。完成后的目录如下所示:

images
├── 石大精神.png
├── 学风.png
├── 校名.png
├── 校旗.png
├── 校标.png
├── 校歌.png
├── 校训.png
└── 校风.png
注意:images文件夹一定是以 代码形式动态建立 ,手工建立的无效。新建之前一定要检查文件夹是否存在,如果存在则不建立。

提示:
1) 得到的图片是一个相对地址,需要在前面加上http://www.upc.edu.cn形成完整的链接。例如校歌图片的链接为/__local/8/2D/0D/5CA8B3D8EAE84524B99DA08A212_05DA246B_299BE.png ,需要转换为http://www.upc.edu.cn/__local/8/2D/0D/5CA8B3D8EAE84524B99DA08A212_05DA246B_299BE.png
2) 每个图片用其对应的名称进行重命名,图片后缀不变。例如校歌的图片重新命名为“校歌.png"
3) 校庆日中没有图片,对于这个异常,可以用try except结构处理,具体用法自行查找学习

import os
import requests
from bs4 import BeautifulSoup as BS
from pathlib import Path
url = r'http://www.upc.edu.cn/xygk/xywh.htm'
url0 = r'http://www.upc.edu.cn'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
response = requests.get(url=url,headers = headers) #UA伪装,简单的防反爬机制
soup = BS(response.content,'lxml')
image_list = soup.find_all('div', class_="section")   # 获取所有的照片信息
file =Path(f'{path}/images')  #文件夹路径
folder = os.path.exists(file)  # 判断文件夹是否存在
if not folder:
    os.makedirs(file)  # 不存在则生成
for detail in image_list:
    name = detail.find("div",class_ = "hd").text.split()[0]
    #获取名字,因为有的会带一部分(其他文字),所以只取第一个,可以吧末尾的[0]去掉,运行查看
    try:
        img_url0 = detail.find("img", class_="img_vsb_content")['src']#获取照片的部分url
        img_url1 = url0 + img_url0#生成照片的url
        root = Path(f'{path}/images/{name}.png') #生成照片的存放路径
        if not os.path.exists(root):  #判断照片是否存在
            r = requests.get(img_url1)
            with open(root,'wb') as f:
                f.write(r.content)  # 将图片的信息存入
    except:
        pass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ppdd·~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值