爬取古诗文网的推荐古诗

  • 思路分析
  • 完整代码
  • 结果展示

思路分析


本次的主要目的是练习使用正则表达式提取网页中的数据。
该网站的推荐古诗文一共有10页,页码可以在URL中进行控制,比如说,下面的URL指的是第一页。

https://www.gushiwen.org/default.aspx?page=1

想要第几页只需要让page等于对应的页码数即可。
页面数据的提取使用的是正则表达式,由于爬取的数据较少,这里我就直接保存成CSV文件了。

完整代码

# !/usr/bin/env python
# —*— coding: utf-8 —*—
# @Time:    2020/2/3 13:04
# @Author:  Martin
# @File:    ancient_poetry.py
# @Software:PyCharm
import requests
import re
import pandas as pddef main():endIndex = 10data = []url = 'https://www.gushiwen.org/default.aspx?page=%d'for i in range(1, endIndex+1):data += parse_page(url % i)save(data)def parse_page(url):headers = {'Referer': 'https://www.gushiwen.org/default.aspx?page=1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'}r = requests.get(url, headers=headers)text = r.texttitles = re.findall(r'<div class="cont">.*?<b>(.*?)</b>', text, re.DOTALL)dynasties = re.findall(r'<p class="source">.*?<a.*?>(.*?)</a>', text, re.DOTALL)authors = re.findall(r'<p class="source">.*?<a.*?>.*?<a.*?>(.*?)</a>', text, re.DOTALL)contents = re.findall(r'<div class="contson".*?>(.*?)</div>', text, re.DOTALL)poem_contents = []for content in contents:item = re.sub(r'<.*?>', "", content).strip()poem_contents.append(item)poem_list = []for title, dynasty, author, content in zip(titles, dynasties, authors, poem_contents):poem_list.append({'title': title,'author': author,'dynasty': dynasty,'content': content})print(poem_list)return poem_listdef save(data):pd.DataFrame(data).to_csv('./result/poem.csv', index=False, encoding='utf_8_sig')if __name__ == '__main__':main()

结果展示


爬取古诗文网的推荐古诗相关推荐

  1. Python真香之爬取古诗文网

    最近在学习Python相关,学习了基本的语法后想搞点事情试试,所以来爬取下古诗文网中的相关作者信息 准备资料: 爬取目标:爬取古诗文网的唐代作者的信息 目标分析: 一级页面是所有唐代作者的列表,点击名 ...

  2. Python使用网络抓包的方式,利用超级鹰平台识别验证码登录爬取古诗文网、上篇--识别验证码

    Python使用网络抓包的方式,利用超级鹰平台识别验证码登录,<爬取古诗文网>. 上篇–识别验证码 序言: 哈喽,各位小可爱们,我又来了,这次我新学习到的内容是python爬虫识别验证码. ...

  3. Python实战---使用正则表达式爬取古诗文网

    使用正则表达式爬取古诗文网 爬取目标 具体字段为: title 标题 dynasty 朝代 author 作者 content 内容 tag 标签 实现代码 ''' @Description: 使用正 ...

  4. Python爬虫(一)——爬取古诗文网,初识什么是爬虫

    首先来说下什么是爬虫,按照百度百科的说法是:是一种按照一定规则,自动抓取万维网信息的程序或者脚本:首先它是程序,需要我们定义好规则,然后程序就会按照定义好的规则抓取网络上的信息,数据抓取下来了之后,需 ...

  5. Python-爬虫(爬虫练习 爬取古诗文网五言绝句)

    目标网站 采用的数据解析方式:xpath.bs4.re正则 获取网站中所有的五言绝句诗词链接 from bs4 import BeautifulSoup import re# 获取五言绝句代码链接,以 ...

  6. 爬虫学习笔记:爬取古诗文网

    1.目标网站 目标网站:https://so.gushiwen.org/shiwen/default.aspx? 2.爬虫目的 爬取目标网站的文本,如古诗的内容,作者,朝代,并且保存到本地中. 3.爬 ...

  7. scrapy框架爬取古诗文网的名句

    使用scrapy框架爬取名句,在这里只爬取的了名句和出处两个字段.具体解析如下: items.py 用来存放爬虫爬取下来的数据模型,代码如下: import scrapyclass QsbkItem( ...

  8. python输出古诗词_python爬取古诗文网

    解析:正则表达式 代码 import requests import re def parse_page(url): headers = { 'User-Agent': 'Mozilla/5.0 (W ...

  9. python-爬取古诗文网古诗

    标题:爬取古诗文网古诗 # encoding=utf-8 import requests import re# 请求数据 def parse_page(url):headers = {'User-Ag ...

最新文章

  1. 孙正义:未来30年投资趋势【附PPT】
  2. asp.net pdf如何转换成tif_如何将pdf转换成高清图片?你需要这个软件!|电脑|pdf|转换器...
  3. 输出四位完全平方数_完全平方数中的规律
  4. Python 基础 函数
  5. mysql 快速初始化_MySQL中的批量初始化数据的对比测试(r12笔记第71天)
  6. 通用线程 -- sed 实例
  7. 【python数据分析】用python进行数据探索2(常见matplotlib及pandas绘图函数汇总、对比及拓展)
  8. ELK下es索引管理工具-curator
  9. EDA实验课课程笔记(六)——NC-verilog的介绍与使用(二)
  10. 最火的开源项目及编程语言
  11. Mac 如何查看电脑的蓝牙版本信息
  12. 2021-07-03图标,选择框
  13. 每日一句20191019
  14. 有线与无线网络配置相关工具
  15. mapgis安装|计算机中丢失basroot.dll
  16. ES集群单机(单节点/多节点)搭建
  17. HFSS构建天线对称阵子
  18. 数字图像处理--空间变换
  19. osx制作u盘安装盘
  20. Vue学习之前端路由

热门文章

  1. EasyExcel导出添加水印
  2. 欧姆龙485通讯示例程序_欧姆龙PLC型号大全
  3. 电视android已停止运行是什么意思,com.android.systemui已停止是什么意思 怎么解决...
  4. VUE + Element-ui 按住Shift实现多选
  5. 使用jsonp跨域调用百度js实现搜索框智能提示,并实现鼠标和键盘对弹出框里候选词的操作【附源码和在线测试地址】
  6. 旭锋科技制造信息管理系统
  7. 微信文件夹的dat文件怎么打开_微信dat文件如何打开?
  8. 利用TI的官网Sysconfig配置beagleboard-x15 linux系统中的串口
  9. 李佳琦转行成直播一哥,他做对了哪些事?
  10. 使用sftp在客户端与服务器之间进行文件传输