使用Python爬取山东大学机械工程学院官网所有导师完整信息

本文介绍了如何使用Python和XPath爬取山东大学机械工程学院官网的导师信息。首先,介绍了准备工作,包括所需软件和模块。接着,详细分析了导师列表页和个人导师详情页的HTML结构,利用XPath定位到所需数据。最后,概述了代码编写过程,包括获取导师姓名和链接,以及如何爬取和保存每位导师的详细信息。
摘要由CSDN通过智能技术生成

1、准备工作

1.1材料准备

(1)装有Xpath插件的Chrom浏览器
(2)Python3.7.3
(3)urllib.request模块,lxml模块
(4)Pycharm

1.2网页准备

山东大学机械工程学院所有导师页面:https://www.mech.sdu.edu.cn/szdw/xssz.htm
山东大学机械工程学院某一导师页面(黄传真院长界面):
https://www.mech.sdu.edu.cn/info/1126/121093.htm

2、页面分析

2.1所有导师页面分析

打开https://www.mech.sdu.edu.cn/szdw/xssz.htm,检查网页的构成,如图1所示。
图1
图1

发现所有导师的姓名以及对应的链接全部在每个li标签下的a标签中:
<a href="../info/1126/121093.htm" target="_blank">黄传真</a>
所以,只要循着这个标签向上寻找,就能定位这个a标签。
打开Xpath进行标签定位(Ctrl + Shift + x),//div[@id="teacher_main"]/div/ul/li/a/text(),如愿找到了我们需要的导师信息,如图2所示。
图2
图2
另外,我们还需要通过Xpath获得每个导师对应的a标签链接,只需要把text()改成@href就可以了,因为文本和链接是是在同一个a标签内//div[@id="teacher_main"]/div/ul/li/a/@href,同样也获得了相应的链接如图3所示,这里获得的地址并不是完整的地址,后期拼合完整就行了。
图3
图3

2.2某一导师页面分析

与2.1小节相同的套路,打开网址检查网页的构成,我们需要的所有内容都在name = _newscontent_fromname的这个form标签中,如图4所示。此外,我们需要的信息都在form标签下的一个table标签中,以及若干个p标签中。
图4
图4
同样的,打开Xpath,获取我们需要的信息:
获取table的信息 //table//tbody//tr[position()<4]//td/text()
获取图片的地址 //table//tbody//img/@src
后文p标签内容 //div[@class="v_news_content"]/p/text()
后文p标签内容标题 //div[@class="v_news_content"]/p/strong

3、代码编写

代码实现的步骤:首先获取所有导师的姓名和地址,其次分别爬取每个导师的信息,分别为每个导师建立文件夹,保存文字信息和图片。某些导师没有上传照片,应避免报错。
以下是完整的代码:

import urllib.request
import os
from lxml import<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值