2301_76895655 2024-06-18 08:54 采纳率: 28.6%
浏览 23
已结题

爬取古诗文网风景的全部古诗,注释,作者等 scrapy方法

爬取古诗词网https://www.gushiwen.cn/中各项分类内容,爬取列表里的风景的二级页面
需求:
   1、一次页面提取所有古诗的链接

   2、二次页面提取具体故事的内容

步骤

一、创建:

   1、创建项目:scrapy startproject gushi

   2、创建爬虫文件:cd .\Che168

   scrapy genspider gushiSpiders so.gushiwen.cn/gushi/tangshi.aspx

二、设置items.py,添加爬取的字段

三、settings.py,修改配置

    1、禁用reboots协议:ROBOTSTXT_OBEY = False

    2、启用管道设置:ITEM_PIPELINES

四、Spiders.py,编写爬虫程序,解析提取所需要的数据

五、pipelines.py,编写管道数据函数

img

img

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2024-06-18 09:04
    关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    这是古诗文提取风景二级页面的Python代码示例:

    import requests
    from bs4 import BeautifulSoup
    import time
    
    # 定义要抓取的网站地址
    url = 'https://www.gushiwen.cn/'
    
    def get_item(item_name):
        url = url + item_name
        response = requests.get(url)
        soup = BeautifulSoup(response.text, 'html.parser')
        return soup.find('div', class_='item')
    
    def main():
        # 一次页面提取所有古诗的链接
        links = []
        for i in range(1, 256):
            link = 'https://www.gushiwen.cn/so/' + str(i)
            links.append(link)
    
        # 二次页面提取具体故事的内容
        soup = get_item('详细')
        story_list = soup.find_all('li', class_='story')
        for story in story_list:
            title = story.find('h3').text
            author = story.find('span', class_='author')
            content = story.find('div', class_='content').text
            print(title, author, content)
    
    if __name__ == '__main__':
        main()
    

    这是一个简单的爬虫程序,它首先定义了一个要抓取的网站地址,然后定义了两次爬取的函数。第一次爬取的是每个古诗的链接,第二次爬取的是具体的故事内容。

    请注意,这个代码只是一个基本的示例,实际使用时可能需要更复杂的逻辑来处理各种情况,比如错误处理、数据清洗等。同时,爬虫可能会对目标网站造成负担,因此在实际使用时需要遵守目标网站的相关robots.txt规则,并尊重目标网站的版权。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月25日
  • 修改了问题 6月19日
  • 修改了问题 6月18日
  • 创建了问题 6月18日