【懒羊羊选导师】爬虫+图像拼接

本来今晚应该多看看导师们的论文,研究方向的,但是在官网看的时候发现科大真的给我们提供了很多老师!选都选不过来而且那个界面一次只能看一个老师的照片,为了能一眼将老师们帅气美丽的照片尽收眼底,顺势写了个代码。

 

目录

1.爬老师照片 

2. 拼接老师们的美照


1.爬老师照片 

我们专业可以选的导师列表:

别羡慕,真的好多好厉害的老师!!! 

 于是开始写代码:

# 导入必要的包
from bs4 import BeautifulSoup
import requests
import os
import traceback

#使用request取到网页的源码
html = requests.get(r"https://bs.ustc.edu.cn/chinese/teacher-8.html")
html.encoding = 'utf-8'
#使用beautifulsoup对网页源码进行解析
soup = BeautifulSoup(html.text,'lxml')
#https://bs.ustc.edu.cn/

path = r""#你要放照片的文件夹路径
for i in range(3,56):
    try:
        temp = soup.select("body > div.wrap.w.cle > div.fr.view > div.count > div.teach-list > ul:nth-child("+str(i)+") > li:nth-child(1) > a")
        temp_link = "https://bs.ustc.edu.cn/"+temp[0].attrs['href']
        #使用request取到网页的源码
        temp_html = requests.get(temp_link)
        temp_html.encoding = 'utf-8'
        #使用beautifulsoup对网页源码进行解析
        temp_soup = BeautifulSoup(temp_html.text,'lxml')
        pic_link = temp_soup.select("body > div.wrap.w.cle > div.fr.view > div.content > div.tearcher_crad > div.teahcher_img > img")
        pic_full_link = "https://bs.ustc.edu.cn"+pic_link[0].attrs["src"]
        temp_filename = "\\"
        name_xml = temp_soup.select("body > div.wrap.w.cle > div.fr.view > div.content > div.tearcher_crad > div.teacher_msg > ul.msg-text > li")
        for j in range(0,len(name_xml)):
            try:
                temp_filename = temp_filename+name_xml[j].string+"_"
            except Exception as e: #该方法捕获所有异常
                traceback.print_exc() #该处可报出异常的具体位置和原因
        r = requests.get(pic_full_link)
        r.raise_for_status()
        path_use = path + temp_filename+".jpg"
        with open(path_use,'wb') as f:
            f.write(r.content)
            f.close()
            print("保存成功",temp_filename)
    except Exception as e: #该方法捕获所有异常
        traceback.print_exc() #该处可报出异常的具体位置和原因

 运行结果:(部分信息缺失,打印了报错路径)

保存成功 \胡太忠_教授_+86-551-63600563_thu@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \金百锁_教授_+86-551-63600850_jbs@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \王潇_教授_+86-551-63600762_iriswx@ustc.edu.cn_统计与金融系_金融_
保存成功 \王学钦_教授_+86-551-63606292_wangxq20@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \吴耀华_教授_+86-551-63600320_wuyh@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \杨亚宁_教授_+86-551-63600561_ynyang@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \张洪_教授_+86-551-63601890_zhangh@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \张曙光_教授_+86-551-63607294_sgzhang@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \张伟平_教授_zwp@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \张新雨_教授_xinyu143@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \韩潇_特任教授_xhan011@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \郑泽敏_特任教授_zhengzm@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \杨青_特任研究员_yangq@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \陈昱_副教授_+86-551-63602243_cyu@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \崔文泉_副教授_+86-551-63600560_wqcui@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \冯群强_副教授_+86-551-63600846_fengqq@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \苟小菊_副教授_+86-551-63603313_xjgou@ustc.edu.cn_统计与金融系_金融_
保存成功 \郭潇_副教授_+86-551-63600846_xiaoguo@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \贺俊_副教授_+86-551-63607540_hejun@ustc.edu.cn_统计与金融系_金融_
保存成功 \胡治水_副教授_+86-551-63606247_huzs@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \刘杰_副教授_+86-551-63607249_jiel@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \毛甜甜_副教授_+86-551-63606231_tmao@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \潘婉彬_副教授_+86-551-63600567_wbpan@ustc.edu.cn_统计与金融系_金融_
保存成功 \万红燕_副教授_+86-551-63606515_wanhy@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \王占锋_副教授_+86-551-63600560_zfw@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \温灿红_副教授_+86-551-63607553_wench@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \叶五一_副教授_+86-551-63600850_wyye@ustc.edu.cn_统计与金融系_金融_
保存成功 \庄玮玮_副教授_+86-551-63600567_weizh@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \陈刘军_特任副教授_ljchen22@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \贺百花_特任副教授_baihua@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \刘行_特任副教授_hliu01@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \陆凯_特任副教授_kailu666@ustc.edu.cn_统计与金融系_金融_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \孙钰龙_特任副教授_yulongsun@ustc.edu.cn_统计与金融系_金融_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \夏崇武_特任副教授_cwxia@ustc.edu.cn_统计与金融系_金融_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \曾靖_特任副教授_zengjxl@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \张博_特任副教授_wbchpmp@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \张靖南_特任副教授_jnzhang@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \张力_特任副教授_lzhang00@ustc.edu.cn_统计与金融系_金融_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \赵朕领_特任副教授_zzl1212@ustc.edu.cn_统计与金融系_金融_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \丁浩_特任副研究员_dinghao@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \郭新帅_讲师_+86-551-63607241_guoxs@ustc.edu.cn_统计与金融系_金融_
保存成功 \韦勇凤_讲师_+86-551-63602243_yfwei@ustc.edu.cn_统计与金融系_金融_
保存成功 \吴之强_讲师_+86-551-63607241_wzq@ustc.edu.cn_统计与金融系_金融_
保存成功 \吴遵_讲师_+86-551-63600447_wuz@ustc.edu.cn_统计与金融系_金融_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \陈鹏展_博士后_cpz@ustc.edu.cn_统计与金融系_金融_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \方文培_博士后_wenpei@ustc.edu.cn_统计与金融系_综合管理_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \郭冉冉_博士后_guorr@ustc.edu.cn_统计与金融系_金融_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \李炽坤_博士后_ahtclzk@mail.ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \李亚光_博士后_liyg@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \李阳_博士后_tjly@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \卢超_博士后_luchao2022@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str
保存成功 \卫雨婷_博士后_ytwei@ustc.edu.cn_统计与金融系_概率与统计_
保存成功 \席梦梅_博士后_ximengmei123@ustc.edu.cn_统计与金融系_概率与统计_
Traceback (most recent call last):
  File "C:\Users\53497\AppData\Local\Temp\ipykernel_11848\605563424.py", line 17, in <cell line: 2>
    temp_filename = temp_filename+name_xml[j].string+"_"
TypeError: can only concatenate str (not "NoneType") to str

2. 拼接老师们的美照

代码:

from PIL import Image
import os

IMAGES_PATH = ''  # 图片集地址
IMAGES_FORMAT = ['.jpg', '.JPG']  # 图片格式
IMAGE_SIZE = 256  # 每张小图片的大小
IMAGE_ROW = 6 # 图片间隔,也就是合并成一张图后,一共有几行
IMAGE_COLUMN =9  # 图片间隔,也就是合并成一张图后,一共有几列
IMAGE_SAVE_PATH = '\\final.jpg'  # 图片转换后的地址(要带最终的图片名)

# 获取图片集地址下的所有图片名称
image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if
               os.path.splitext(name)[1] == item]
print("一共有"+str(len(image_names))+"张照片")
# 简单的对于参数的设定和实际图片集的大小进行数量判断
if len(image_names) != IMAGE_ROW * IMAGE_COLUMN:
    raise ValueError("合成图片的参数和要求的数量不能匹配!")

# 定义图像拼接函数
def image_compose():
    to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_SIZE, IMAGE_ROW * IMAGE_SIZE)) #创建一个新图
    # 循环遍历,把每张图片按顺序粘贴到对应位置上
    for y in range(1, IMAGE_ROW + 1):
        for x in range(1, IMAGE_COLUMN + 1):
            try:
                from_image = Image.open(IMAGES_PATH + image_names[IMAGE_COLUMN * (y - 1) + x - 1]).resize(
                    (IMAGE_SIZE, IMAGE_SIZE),Image.ANTIALIAS)
                to_image.paste(from_image, ((x - 1) * IMAGE_SIZE, (y - 1) * IMAGE_SIZE))
            except:
                continue
    return to_image.save(IMAGE_SAVE_PATH) # 保存新图
image_compose() #调用函数

运行结果:

 

 大饱眼福~(弱弱提一下,用了老师们的照片希望您们不要介意~如果介意,请收我做你的学生,然后命令我删掉好不好~)

重要事项!************:这篇文章只是小小娱乐一下,大家选导师还是要结合自己的情况,来选择和自己最匹配的老师~希望我早日被收留~

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值