目录

返回首页

简易爬虫教程

目标

✅ 爬取中国工程院官网的院士简介
✅ 爬取院士肖像
✅ 爬取院士简介
✅ 下载所有院士的肖像和简介

背景

在学习爬虫的过程中,我们需要一个简单的爬虫教程来帮助我们快速入门。本文将以中国工程院官网为例,介绍如何使用Python编写一个简单的爬虫程序,爬取院士的肖像和简介。

中国工程院官网是一个提供院士信息和科研成果的网站,包含了大量的院士肖像和简介。我们可以通过爬虫技术,自动化地获取这些信息,并保存到本地。

准备工作

  1. 安装python库os、requests、beautifulsoup4
pip install os requests beautifulsoup4

2.掌握基本的python的语法和HTML标签的结构。

步骤

  1. 打开浏览器,输入目标网站的地址,按F12打开开发者工具,分析页面元素。

01

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

02

03

  1. 编写爬虫代码,先输入目标网站的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")
  1. 将超链接标签的内容提取出来,并将其链接地址和院士姓名组成元组,存入列表。
links = [(i.get_text(strip=True), base_url + i.get("href")) for i in soup.select(".name_list a")]
  1. 输入以下代码,遍历所有院士的姓名和链接地址,并下载其肖像和简介。
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("简介已导出")
  1. 运行代码,等待下载完成。

效果展示

✅ 确保存在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("简介已导出")

04

05

总结

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