Python爬虫——爬取古诗词

文章目录

  • 前言
  • 一、基本目标
  • 二、使用步骤
    • 1.进行分析
    • 2.整体代码
  • 结果
  • 总结


前言

🌸当你喜欢哪个诗人,想获取他的全部诗词数据的时候,可以通过爬虫来解决这个问题,用爬虫把诗词全部爬下来,然后存到txt文档中,打印出来背诵,岂不美哉。 🐟


提示:以下是本篇文章正文内容,下面案例可供参考

一、基本目标

我们要爬取张若虚这个诗人的全部诗词和他的个人简介

二、使用步骤

1.进行分析

🐽先在该页面中获取诗人信息,但是该页面难以获取全部诗词内容,那么在该页面中先获取到诗词详细的url,根据诗词详情页的url再继续深一层爬取详情页信息,进而获取诗词内容

2.整体代码

代码如下(示例):

import requests
from lxml import etree
import re
import time# 设置要爬取的url
base_url = "https://www.shicimingju.com/chaxun/zuozhe/04.html"
# 反反爬
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36","Accept-Encoding": "gzip, deflate, br","Accept-Language": "zh-CN,zh;q=0.9","Referer":"https://www.shicimingju.com"
}
# requests爬取源码
resp = requests.get(url=base_url,headers=headers)
# XPATH解析
html = etree.HTML(resp.text)
# xpath定位,拿到作者名字
author_name = html.xpath('//*[@id="main_right"]/div[1]/div[2]/div[1]/h4/a/text()')[0]
# 解析数据
# 设置re正则表达式获取作者简介的页面元素
obj_introduction = re.compile(r'<div class="des">(?P<introduction>.*?)</div>', re.S)
# 开始匹配正则
result_introduction = obj_introduction.finditer(resp.text)
# 设置作者简介
author_introduction = ""
# 对作者简介页面元素进行正则剔除多余的html标签,并把作者简介进行赋值获取文字信息
for it in result_introduction:author_introduction = it.group("introduction")pattern = re.compile(r'<[^>]+>', re.S)author_introduction = pattern.sub('', author_introduction).strip()
# xpath定位,拿到每篇的url链接,为了进行下一层访问
poet_list = html.xpath('//*[@id="main_left"]/div[1]/div')
poet_list = poet_list[1::2]
for poet in poet_list:url = poet.xpath('./div[2]/h3/a/@href')[0]url = "https://www.shicimingju.com" + url# 爬取具体的诗词信息resp_poet = requests.get(url=url)resp_poet.encoding = 'utf-8'# XPATH解析html_child = etree.HTML(resp_poet.text)# xpath定位,拿到作者名字poet_name = html_child.xpath('//*[@id="zs_title"]/text()')[0]# 解析数据,设置获取诗词内容的正则obj_content = re.compile(r'<div class="item_content" id="zs_content">(?P<poetry_content>.*?)</div>', re.S)# 对正则进行过滤获取到正则后的内容result_content = obj_content.finditer(resp_poet.text)poetry_content = ""# 对正则后的内容进行过滤html标签,连接到poetry_content诗词内容字符串上for it in result_content:poetry_content = it.group("poetry_content")pattern = re.compile(r'<[^>]+>', re.S)poetry_content = pattern.sub('', poetry_content).strip()with open('poet.txt', 'a', encoding='utf-8') as file:file.write("作者姓名:" + author_name + "\n作者简介:" + author_introduction + "\n诗词题目:" + poet_name+"\n诗词内容:"+poetry_content+"\n")print("作者姓名:" + author_name + "\n作者简介:" + author_introduction + "\n诗词题目:" + poet_name+"\n诗词内容:"+poetry_content+"\n")time.sleep(1)
print("结束!")

结果

🐡下面是程序运行的输出

在这里插入图片描述

🐂下面是我们保存到txt文件的内容

在这里插入图片描述


总结

爬虫的基本步骤:
1.检查有没有反爬,设置常规反反爬,User-Agentreferer都是最常见的反爬手段
2.利用xpathre技术进行定位,定位后获取想到的数据即可
3.利用file文件操作写入到文本中
4.注意设置time休眠

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/63111.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM-GPT系列:GPT-1(201806)【1.17亿、5GB】、GPT-2(201902)【15亿、40GB】、GPT-3(202005)【1750亿、45TB】【OpenAI】

GPT1:Imporoving Language Understanding By Generative Pre-training GPT2:Lanuage Models Are Unsupervised Multitask Learners GPT3:Language Models Are Few-shot Learners GitHub:https://github.com/openai/gpt-3 从GPT三个版本的论文名也能看出各版本模型的重点…

汇正财经靠谱吗?沪深创均深V反弹,科创50大涨

盘面回顾&#xff1a; 沪深创午后均多头反击&#xff0c;实现探底回升翻红&#xff0c;截止收盘沪指涨0.09%&#xff0c;深成指涨0.44%&#xff0c;创业板指涨0.67%&#xff0c;科创50大涨1.56%。脑机接口概念股继续大涨&#xff0c;算力、ChatGPT概念股午后再有走强&#xff…

云原生:数字化转型的关键驱动力

作者 | 刘凡 责编 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 随着 Docker、K8s、云原生等技术的演进&#xff0c;为企业数字化转型提供了一种更加现代化的 IT 平台&#xff0c;本文作者是云原生一体化平台 Rainbond 创始人刘凡&#xff0c;他…

几个快速提升工作效率的小工具(Listary等)分享一下(强烈建议收藏)

您好&#xff0c;我是码农飞哥&#xff0c;感谢您阅读本文&#xff01;如果此文对您有所帮助&#xff0c;读者朋友们毫不犹豫的给个一键三连呗 文章目录 给方法名命名的工具搜索工具下载使用 总结结尾彩蛋 给方法名命名的工具 不知道你是否有在给方法或者类起一个合适的方法名…

可以帮助提升程序员高效工作效率的常用小工具推荐

给大家分享一些程序员的实用工具&#xff0c;工具用得好&#xff0c;帮助你快速提升效率。 1、Xmind思维导图 Xmind是一款比较适合记录想法的软件&#xff0c;尤其是在当你负责项目的时候&#xff0c;把项目的各方面想法进行细化和展现出来&#xff0c;不用大量的文字来…

一位老程序员的退休忠告:别想着靠技术生存一辈子!

点击关注公众号&#xff0c;Java干货及时送达&#x1f447; 笔者目前是自己单干&#xff0c;但此前有多年在从事软件开发工作&#xff0c;回头想想自己&#xff0c;特别想对那些初学JAVA/DOT、NET技术的朋友说点心里话&#xff0c;希望我们的体会多少能给你们一些启发。 一、 在…

.NET5发布,这个微软“全家桶”会是.NET的春天吗?

在全面开源的步伐下&#xff0c;微软也逐步跟上了脚步&#xff0c;作为微软最早迈向开源的重要软件之一&#xff0c;.NET 5的发布对微软及其使用者都具有重要意义。 微软未来目标是将所有的 .NET 组件整合到一个产品下&#xff0c;然后用户可以根据需求使用 .NET 的某个部分&a…

让AI为你制作思维导图 —— ChatMind

ChatMind是什么 ChatMind&#xff0c;是一款利用与 AI 的对话中生成和编辑思维导图的工具&#xff0c;支持上下文改写扩充对话&#xff0c;ChatMind AI 可用于多种场景&#xff0c;例如记笔记、日程安排、项目管理、头脑风暴、框架等等。 既能帮助用户快速总结分析&#xff0…

AI写代码靠谱吗?

ChatGPT出来半年多了&#xff0c;用GPT编码的程序员有多少&#xff1f;虽然没有数据支撑&#xff0c;但我感觉用AI编码程序员并不多。我问过几个朋友&#xff0c;他们的回复是&#xff0c;AI没办法完成他想要完成的任务&#xff0c;最终还是得靠自己去写。 GPT真的没办法帮助程…

linux下oracle死机,Linux系统参数造成的Oracle服务器停止响应

环境&#xff1a; Oracle 11gr2 dataguard 512GB内存 128核cpu 高性能存储服务器 uname -an Linux dbhost 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64 x86_64 GNU/Linux 症状&#xff1a; 做rman备份时&#xff0c;系统内存急剧下降&#xff0c;直到…

运行配置停止之前未连接应用程序服务器,原因: 无法在 localhost:1099处 ping 服务器

解决方法&#xff1a; 打开idea的编辑配置&#xff1a; 记得点击应用和确定 &#xff01;

vac服务器未响应,csgo国服游戏停止工作、未响应的解决方法

CSGO是一款玩家非常喜爱的射击游戏&#xff0c;但玩家常常面临的停止工作的现象&#xff0c;有时会跳出、未响应&#xff0c;那么应该如何解决呢&#xff1f;下面小编带来了csgo国服游戏停止工作、未响应的解决方法&#xff0c;希望对大家有所帮助。 游戏停止工作、未响应的解决…

服务器停止响应是什么意思,该如何排查?

服务器停止响应意味着什么?在租用网站服务器的过程中&#xff0c;我们总是会遇到各种各样的问题&#xff0c;比如最麻烦的网站服务器没有响应。让我们简单地谈谈网站服务器停止响应意味着什么&#xff0c;什么情况会没有响应&#xff0c;以及如何解决它。 什么是服务器停止响…

誉天程序员-常用网站

学习方法六大招 日常你是如何学习新知识的&#xff1f;&#xff08;面试官爱问哦&#xff09; 1、百度百科概念了解 2、技术官网简单了解 3、同类产品技术选型 4、百度搜索入门案例 5、泛读百文瘦弱圆润 6、遇到问题问AI助手&#xff08;chatGPT&#xff09;噢 技术路线图&a…

python创建智能问答机器人

微信和chatgpt 这个在另外一篇文章&#xff1a;微信接入chatgpt 背景 最近一直都在忙做文本机器人的事情&#xff0c;所以就很少发公众号文章了。目前机器人的代码&#xff0c;已经全部发布在github上了。做机器人的目的&#xff1a;一方面是为了锻炼自己的代码能力&#xf…

机器人 Ameca「苏醒」瞬间逼真到令人恐惧,网友纷纷惊叹……

整理 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 近日&#xff0c;国内外网友都被一段机器人「苏醒」的视频惊讶到。 视频开始时&#xff0c;机器人似乎已经睡着&#xff0c;眼睛闭着&#xff0c;头部略微向下倾斜。随着肩膀的伸展&#xff0c;机器…

近乎于“神”的任正非

https://www.toutiao.com/a6709410685605921284/ 大家好&#xff01; 我是曙光&#xff01;今天和大家谈一谈任正非。 孙子曰&#xff1a;“能因敌变化而取胜者&#xff0c;谓之神。”任正非及华为在这次中美贸易“大事件”中的种种超凡表现让人顶礼膜拜发自心底里尊称他为“战…

任正非谈鸿蒙系统有一大失误,任正非谈鸿蒙系统:能完美适应物联网 性能超安卓...

对于华为的鸿蒙系统&#xff0c;任正非近段时间接受采访时也是谈到了它&#xff0c;不过这款自主操作系统跟之前预想的并不太一样。任正非表示&#xff0c;赛博体育官网鸿蒙系统的产生&#xff0c;本身并不是为了手机用&#xff0c;而是为了做赛博体育官网 物联网 来用的&#…

任正非,马云,马化腾:真正顶级厉害的人,都有一个共同特点

点击“技术领导力”关注∆ 每天早上8:30推送 “比尔盖茨说微软离死亡只有180天&#xff0c;但是华为明天就会死亡”。面对未来遥不可及同时看不见、摸不着的危机&#xff0c;任正非总是如屡薄冰。 华为、腾讯、阿里这几家堪称伟大的中国企业&#xff0c;都是从一次次危机中淬炼…

任正非:5G 背后有个不谈恋爱的小伙子

本文经授权转自公众号&#xff1a;程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 整理 | 伍杏玲 出品 | 程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 22日&#xff0c;任正非在接受访问时首次“大爆料”&#xff1a;5G的快速发展背后&#xff0c;原…