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]))

结果如下:

相关推荐
li星野13 分钟前
QT模拟题:QT项目实践与架构设计(120分钟)
开发语言·qt
进击的小头14 分钟前
第15篇:MPC的发展方向及展望
python·算法
大鹏说大话31 分钟前
Java 锁膨胀机制深度解析:从偏向锁到重量级锁的进化之路
开发语言·c#
IT猿手35 分钟前
基于 ZOH 离散化与增量 PID 的四旋翼无人机轨迹跟踪控制研究,MATLAB代码
开发语言·算法·matlab·无人机·动态路径规划·openclaw
IT猿手35 分钟前
基于控制障碍函数(Control Barrier Function, CBF)的无人机编队三维动态避障路径规划,MATLAB代码
开发语言·matlab·无人机·动态路径规划·无人机编队
huaweichenai38 分钟前
java的时间操作介绍
java·开发语言
就不掉头发41 分钟前
C++右值与右值引用
开发语言·c++
SugarFreeOixi44 分钟前
MATLAB绘图风格记录NP类型
python·matlab·numpy
IT猿手1 小时前
基于 CBF 的多无人机编队动态避障路径规划研究,无人机及障碍物数量可以自定义修改,MATLAB代码
开发语言·matlab·无人机·动态路径规划
炸膛坦客1 小时前
单片机/C/C++八股:(十六)C 中 malloc/free 和 C++ 中 new/delete 有什么区别?
c语言·开发语言·c++