第一个简单Python爬虫:抓取古诗文网中李白的诗歌

2018年10月11日  这是第一个博客,嘻嘻~~~~

最近老师给了个任务:爬取诗歌。于是乎,走上了爬虫道路,爬取了李白的诗歌。

感谢代码的原作者(唐诗三百首,源代码)。

遇到的问题与收获:

1.熟悉了正则表达式在HTML中的匹配规则,能够编写出相应的正则表达式

2.不能利用正则表达式返回同一页面多个相同标签的内容

附上代码

# -*- coding:utf-8 -*-
import re
import requestsdef crawl(start_url):base_url = 'http://so.gushiwen.org'req_headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}for i in range(1, 126):restart_url = start_url + str(i) + '.aspx'print(restart_url)res = requests.get(restart_url, headers=req_headers)if res.status_code == requests.codes.ok:html = res.text# 获取所有诗的链接parttern_href = re.compile(r'<div class="cont">.*?<p><a .*? href="(.*?)" .*?>.*?</p>', flags=re.DOTALL)hrefs = re.findall(parttern_href, html)# 获取每一首诗的内容,并保存到本地with open('李白诗集.txt', mode='a', encoding='utf-8') as f:for href in hrefs:href = base_url + hrefres = requests.get(href, headers=req_headers)if res.status_code == requests.codes.ok:html = res.text# 标题parttern_title = re.compile(r'<div class="cont">.*?<h1 .*?>(.*?)</h1>', re.DOTALL)title = re.search(parttern_title, html).group(1)# 内容parttern_content = re.compile(r'<div class="cont">.*?<div class="contson" id=".*?">(.*?)</div>',re.DOTALL)content = re.search(parttern_content, html).group(1)content = re.sub(r'<br />', '\n', content)content = re.sub(r'<p>', '', content)content = re.sub(r'</p>', '', content)print('正在获取 {title}'.format(title=title))f.write('{title}{content}\n'.format(title=title, content=content))if __name__ == '__main__':start_url = 'https://so.gushiwen.org/authors/authorvsw_b90660e3e492A'crawl(start_url)

运行结果

 

 

 

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

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

相关文章

如何开通阿里云语音通知服务?

阿里云语音服务是阿里云为用户提供的一种通信服务的能力。支持快速发送语音通知服务。 安全级别更高&#xff0c;难窃取。支持大容量、高并发&#xff0c;稳定可靠。 一、如何开通阿里云语音服务&#xff1f; 注册阿里云平台账户&#xff1b;实名登记认证&#xff1b;阿里云语…

Android语音识别-阿里语音识别

实例代码先行 AutomaticSpeechRecognition 一、申请语音识别API&#xff08;可忽略&#xff0c;代码中有我自己的&#xff09; 在阿里智能语音识别网页申请自己的AccessKey&#xff0c;secret。 二、用Android Studio创建项目 可以从git clone下载用下我的 git clone https…

阿里语音识别看这一篇就够了

先看效果 效果视频 首先到阿里页面创建项目 传送门:https://help.aliyun.com/document_detail/71936.htm?spma2c4g.11186623.0.0.12a03787uqgGAh#2572188 下载sdk引入到项目并且依赖 传送门:https://gw.alipayobjects.com/os/bmw-prod/d5d24de6-599d-41ac-aad7-3bfa6fc38f4…

JSP学生学籍管理系统设计与实现(源代码+论文+开题报告+外文翻译+答辩PPT)

cc学院 毕业设计&#xff08;论文&#xff09;开题报告 题 目&#xff1a; 基于JSP的学生学籍管理系统 学 科 部&#xff1a; 信工学科部 专 业&#xff1a; 计算机科学与技术 班 级&#xff1a; 学 号&#xff1a; 姓 名&#xff1a; 指导教师&#xff1a; 填表日期&…

​chatGPT超智慧AI非常强大,其运行原理是什么?

chatGPT是一种基于人工智能技术的聊天机器人&#xff0c;其功能原理如下&#xff1a; 1. 数据收集&#xff1a;chatGPT通过网络爬虫等方式收集大量的语料库&#xff0c;包括对话、文章、新闻等。 2. 训练模型&#xff1a;chatGPT使用深度学习技术&#xff0c;将收集到的语料库…

三体模拟器(python)

原文来自本人博客&#xff1a;三体模拟器&#xff08;python&#xff09; vpython vpython库是一个能做3D动画的第三方库&#xff0c;安装起来很容易&#xff0c;利用anacanda或者pycharm都能简单安装 导入vpython from vpython import *设置画布参数 scene.forward vect…

用Python画一个3D太阳系

用Python画一个平面的太阳系得到一些朋友的欣赏&#xff0c;然后有同学提出了绘制三维太阳系的要求。 从Python画图的角度来说&#xff0c;三维太阳系其实并不难&#xff0c;问题在于八大行星对黄道面的倾斜太小&#xff0c;所以尽管画个三维的图&#xff0c;但就观感而言&…

宇宙都要毁灭了你还在玩汉诺塔?(动画讲解汉诺塔问题)

CSDN话题挑战赛第2期 参赛话题&#xff1a;学习笔记 前言 &#x1f496;作者&#xff1a;龟龟不断向前 ✨简介&#xff1a;宁愿做一只不停跑的慢乌龟&#xff0c;也不想当一只三分钟热度的兔子。 &#x1f47b;专栏&#xff1a;C初阶知识点 &#x1f47b;工具分享&#xff1a; …

物理研学论文MATLAB仿真——地月火箭三体问题的数值求解(平面圆形限制性三体问题的研究)

在二十世纪第一次数学家大会上&#xff0c;希尔伯特提出了“完美数学问题”准则&#xff0c;随后他举了两个例子&#xff0c;一个是费马猜想&#xff0c;另一个就是N体问题。近现代研究最多的就是三体问题。 三体问题就是三个天体在万有引力作用下的运动问题。三个天体的质量、…

关于计算机与教育的英语作文,信息技术对教育的影响英文作文

关于”信息技术对教育的影响“的英语作文范文2篇,作文题目:The influence of information technology on Education。以下是关于信息技术对教育的影响的小学英语范文,每篇作文均为真题范文带翻译。 高分英语作文1:The influence of information technology on Education Us…

维普导出参考文献

勾选需要导出参考文献的文章&#xff0c;点击“导出题录” 选择“参考文献”&#xff0c;点击“复制”或“导出”即可

同时处理知网、万方、维普数据库——CiteSpace、Ucinet、Vosviewer等

同时处理知网、万方、维普数据库——CiteSpace、Ucinet、Vosviewer等 全网独家[下文有视频教程] 《CiteSpace、Ucinet、Vosviewer、gephi等文献计量与可视化软件同时处理知网、万方、维普数据库》&#xff0c;结果更加客观、科学、权威&#xff01; 目前&#xff0c;我们利用…

Zotero 导入中文数据库文献(知网、百度学术、万方和维普数据)

首先打开 github 页面。下载 zip 文件并解压。 zotero 导入中国知网等文献网站学术插件下载地址 打开 zotero 软件&#xff0c;依次打开 编辑 - 首选项 - 高级 - 文件和文件夹 - 打开数据文件夹。 找到本地磁盘文件夹&#xff0c;找到插件文件夹&#xff0c;将 js 文件复制到 …

会议记录管理系统(1)

A.系统分析 B.数据库设计流程 C.搭建系统架构的方法 D.ADODB类库技术的应用 E.熟悉ADODB类库操作mySql的使用方法 F.webBrowser预览与打印 G.生成excel报表 H.分类查询实现的应用 I.文件上传的实现方法 1.开发背景 2.需求分析 3.系统分析 - 系统目标 - 首页设…

小爱音箱mini无法响应的解决方法

1、按音箱的“暂停键”5秒。 2、听到“已进入设置模式”后&#xff0c;橙色灯常亮时在手机上打开小爱音箱app 3、重新设置网络&#xff1a; 选择路由器&#xff0c;路由器链接密码后&#xff0c;当语音提示已连接&#xff0c;说明设置完成。

BI工具如何提升工作效率:以瓴羊Quick BI、观远BI为例

最近一段时间&#xff0c;ChatGPT的横空出世让越来越多的人意识到了数字科技对于人们生活方式、工作方式的巨大变革作用。事实上&#xff0c;在企业中这样的例子早就十分常见。比如瓴羊Quick BI、观远BI等商业智能工具的出现和应用&#xff0c;就为现代企业的管理运营和工作效率…

【QT + OsgEarth】(一)-- 环境配置

OSG概述 OpenSceneGraph(简称OSG)使用OpenGL技术开发&#xff0c;是一套基于Ct平台的应用程序接口(API)&#xff0c;它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。它作为中间件(middleware)为应用软件提供了各种高级渲染特性&#xff0c;IO&#xff0c…

Windows环境下配置CGAL

环境版本 CGAL-5.5 下载地址&#xff1a;https://github.com/CGAL/cgal/releases/tag/v5.5 Tips: 在该网址下同时下载<GMP and MPFR libraries for Windows 64bits>&#xff0c;并将下载后该文件下的gmp复制到CGAL的auxiliary进行覆盖。 Boost-1-18-0 下载地址&#xff1…

面向黑马头条学习

一&#xff1a;创建项目 进去选择第三个&#xff0c;人工选择&#xff1a; 二&#xff1a;加入git版本管理 查看git日志&#xff1a; github首次创建vuecli &#xff0c;自己提交了第一次代码 第二步&#xff0c;将本地仓库添加远程仓库地址 add后的origin后面地址 的名字&…

黑马头条简述

黑马头条 技术栈&#xff1a;springcloudgateway微服务之前架构的网关服务&#xff0c;实现微服务注册的api请求路由&#xff0c;控制流速和熔断处理 Springbootalibaba Nacos作为项目中注册中心和配置中心 Mybatis-plus作为持久层提升开发效率 Kafka完成内部系统消息通知&…