python爬虫(二)爬取国家博物馆的信息

py 复制代码
import requests
from bs4 import BeautifulSoup

# 起始网址
url = 'https://www.chnmuseum.cn/zx/xingnew/index_1.shtml'
# 用于存储所有数据
all_data = []
page = 1
global_index = 1  # 定义全局序号变量并初始化为1
while True:
    html_url = requests.get(url).text
    if requests.get(url).status_code == 200:
        print(f"第 {page} 页,请求成功")

    else :
        print(f"第 {page} 页,请求失败")
    soup = BeautifulSoup(html_url, 'lxml')  # 'lxml'是解析器类型,用于解析HTML文档,lxml是一个高性能的Python XML和HTML解析库

    datas = soup.select('li')
    for data in datas:
        a = data.select_one('a')
        span = data.select_one('span')
        if span and a:
            my_date = span.get_text()
            my_title = a.get_text()
            my_href = a.get('href')[2:]
            print(global_index,my_title, my_date, my_href)
            # 添加序号
            all_data.append((global_index, my_date, my_title, my_href))
            global_index+=1

    # 判断数据是否达到100条
    if len(all_data) >= 100:
        break

    # 查找下一页链接
    page += 1
    url = f'https://www.chnmuseum.cn/zx/xingnew/index_{page}.shtml'

# 将数据保存到CSV文件
with open("数据保存.csv", 'w', encoding='utf-8') as file:
    file.write('序号,时间,标题,网址\n')
    for data in all_data:
        file.write('{},{},{},{}\n'.format(data[0], data[1], data[2], data[3]))

结果如下:

相关推荐
G018_star sky♬15 分钟前
nodeJS他是如何用JavaScript封装C++的呢
开发语言·javascript·c++
wyhwust30 分钟前
程序设计基础--C语言输入输出单元测试
c语言·开发语言
STLearner1 小时前
KDD 2026 | (2月轮)时空数据(Spatial-Temporal)论文总结时空【下】(人群移动,城市科学(资源调度,)
大数据·人工智能·python·深度学习·机器学习·语言模型·数据挖掘
云和数据.ChenGuang1 小时前
python sorted函数详细剖析
开发语言·人工智能·windows·python·1024程序员节
打工仔折腾 AI1 小时前
AI Agent 工程化实战(二):5 分钟跑通 Deep Agent 并逐层拆解底层链路
java·数据库·人工智能·后端·python·langchain·ai agent 实战
外收内放1 小时前
FastAPI猜字谜实战(4):让AI主持人开口
开发语言·python·学习·fastapi
云和数据.ChenGuang1 小时前
Python map() 函数详解:从语法、原理到实战用法
开发语言·人工智能·python·langchain·1024程序员节
秋名RG1 小时前
(二)存储、CPU 与指令执行——程序为什么快,又为什么慢
java·开发语言
Highcharts.js1 小时前
Highcharts甘特图开发带导航功能的项目管理图示例
开发语言·前端·javascript·甘特图·highcharts·项目管理图
kyle~1 小时前
C++ 原子操作、内存模型与无锁并发编程
linux·开发语言·c++·操作系统