返回首页
简易爬虫教程
目标
✅ 爬取中国工程院官网的院士简介
✅ 爬取院士肖像
✅ 爬取院士简介
✅ 下载所有院士的肖像和简介
背景
在学习爬虫的过程中,我们需要一个简单的爬虫教程来帮助我们快速入门。本文将以中国工程院官网为例,介绍如何使用Python编写一个简单的爬虫程序,爬取院士的肖像和简介。
中国工程院官网是一个提供院士信息和科研成果的网站,包含了大量的院士肖像和简介。我们可以通过爬虫技术,自动化地获取这些信息,并保存到本地。
准备工作
- 安装python库os、requests、beautifulsoup4
pip install os requests beautifulsoup4
2.掌握基本的python的语法和HTML标签的结构。
步骤
- 打开浏览器,输入目标网站的地址,按F12打开开发者工具,分析页面元素。

- 通过开发者工具定位元素可发现,在全体院士名单这里有多个超链接,均位于无序列表标签下的属于name_list类的列表项下的超链接标签,该标签居于href属性,储存对应院士页面的相对网页地址和院士姓名。


- 编写爬虫代码,先输入目标网站的url,并用requests库获取网页内容,再利用beautifulsoup4库解析网页内容,提取院士姓名和链接地址。
import requests
from bs4 import BeautifulSoup
url = "https://www.cae.cn/cae/html/main/col48/column_48_1.html"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
- 将超链接标签的内容提取出来,并将其链接地址和院士姓名组成元组,存入列表。
links = [(i.get_text(strip=True), base_url + i.get("href")) for i in soup.select(".name_list a")]
- 输入以下代码,遍历所有院士的姓名和链接地址,并下载其肖像和简介。
import os
for name, link in links:
print(f"\n正在读取{name}院士的网页信息:")
whoSoup = BeautifulSoup(requests.get(link).content, "html.parser")
img_url = base_url + whoSoup.select_one(".info_img img").get("src")
img_path = f"{target_dir}\\{name}.jpg"
with open(img_path, "wb") as f:
f.write(requests.get(img_url).content)
print("肖像已导出")
intro_text = "\n".join([i.get_text(strip=True) for i in whoSoup.select(".intro p")])
intro_path = f"{target_dir}\\{name}.txt"
with open(intro_path, "w", encoding="utf-8") as f:
f.write(intro_text)
print("简介已导出")
- 运行代码,等待下载完成。
效果展示
✅ 确保存在python库os、requests、beautifulsoup4
import os
import requests
from bs4 import BeautifulSoup
target_dir = "院士简介"
if not os.path.exists(target_dir):
os.makedirs(target_dir)
url = "https://www.cae.cn/cae/html/main/col48/column_48_1.html"
base_url = "https://www.cae.cn"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
links = [(i.get_text(strip=True), base_url + i.get("href")) for i in soup.select(".name_list a")]
for name, link in links:
print(f"\n正在读取{name}院士的网页信息:")
whoSoup = BeautifulSoup(requests.get(link).content, "html.parser")
img_url = base_url + whoSoup.select_one(".info_img img").get("src")
img_path = f"{target_dir}\\{name}.jpg"
with open(img_path, "wb") as f:
f.write(requests.get(img_url).content)
print("肖像已导出")
intro_text = "\n".join([i.get_text(strip=True) for i in whoSoup.select(".intro p")])
intro_path = f"{target_dir}\\{name}.txt"
with open(intro_path, "w", encoding="utf-8") as f:
f.write(intro_text)
print("简介已导出")


总结
爬虫的基本原理是模拟浏览器的行为,通过HTTP请求获取网页内容,并解析网页内容,提取所需信息。本文以爬取院士简介和肖像为例,介绍了爬虫的基本流程和代码实现。爬虫的应用场景有很多,如数据分析、数据挖掘、信息采集、网络监控、网络安全、信息推送等。希望本文能帮助到读者。