普通网友 2024-06-18 14:18 采纳率: 0%
浏览 26

python爬取古诗代码

从网站“https://so.gushiwen.cn/gushi/tangshi.aspx”中采集唐诗三百首的内容。具体要求如下:
1.采集数据完整,内容规范(即不包含特殊符号,如换行符、制表符等)。
2.结果数据保存为txt格式的文本文件,每一行包含一首古诗,具体包括信息:诗类型、诗题目、诗内容、诗作者;
3.代码逻辑结构清晰,语法规范。

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-18 14:18
    关注

    引自免费微信小程序:皆我百晓生

    为了满足上述需求,可以使用Python中的requests库来获取网页内容,以及BeautifulSoup库来解析HTML并提取所需信息。以下是实现这一目标的完整代码示例:

    import requests
    from bs4 import BeautifulSoup
    
    def fetch_tang_poems():
        url = "https://so.gushiwen.cn/gushi/tangshi.aspx"
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
        }
        response = requests.get(url, headers=headers)
        response.encoding = 'utf-8'  # 设置正确的编码方式
        
        soup = BeautifulSoup(response.text, 'html.parser')
        
        poems = []
        
        for div in soup.find_all('div', class_='sons'):
            title = div.find('b').get_text(strip=True)
            author = div.find('p', class_='source').find('a').get_text()
            
            content_tags = div.find_all('div', class_='contson')
            if content_tags:
                content = content_tags[0].get_text(strip=True).replace('\n', '').replace('\r', '')
                
                # 组织数据
                poem_info = f"唐诗|{title}|{content}|{author}"
                poems.append(poem_info)
        
        return poems
    
    def save_to_file(poems):
        with open('tang_poems.txt', 'w', encoding='utf-8') as file:
            for poem in poems:
                file.write(poem + '\n')
    
    if __name__ == '__main__':
        poems = fetch_tang_poems()
        save_to_file(poems)
    

    这段代码首先定义了一个函数fetch_tang_poems()用于从指定URL抓取唐诗信息。它发送一个GET请求到目标网址,并使用BeautifulSoup解析返回的HTML文档。通过查找特定的HTML元素,可以提取出每首诗的标题、作者和内容。提取的信息被整理成字符串格式,其中包含了诗的类型、标题、内容和作者。

    接着,save_to_file()函数将这些信息写入到一个名为tang_poems.txt的文本文件中,每一首诗占一行。

    注意:

    1. 这段代码可能需要根据实际网页结构进行调整,因为网站可能会有更新。
    2. 网站可能有反爬虫策略,频繁访问可能会导致IP被封禁。
    3. 确保在合法合规的前提下进行网络爬虫操作。

    确保在运行此代码前已安装requestsbeautifulsoup4库,可以通过pip安装:

    pip install requests beautifulsoup4
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月18日

悬赏问题

  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
  • ¥100 求Web版SPC控制图程序包调式
  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请