爬虫_古诗文网(正则表达式)

news/2024/7/19 8:35:45 标签: 爬虫

程序中请求到的和网页中内容不一样,但也是古诗,不是道是不是因为请求头的原因,使得网站推荐的古诗有差异

 1 import requests
 2 import re
 3 
 4 headers = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
 5 
 6 def get_html(url):
 7     try:
 8         response = requests.get(url, headers)
 9         response.raise_for_status()
10         response.encoding = response.apparent_encoding
11         return response.text
12     except:
13         print('get_html(url) faild')
14 
15 
16 def parse_html(html):
17     titles = re.findall(r'<div class="cont">.*?<b>(.*?)</b>', html, re.DOTALL)
18     dynasties = re.findall(r'<p class="source"><a.*?>(.*?)</a>', html, re.DOTALL)
19     authors = re.findall(r'<p class="source"><a.*?><a.*?>(.*?)</a>', html, re.DOTALL)
20     content_tags = re.findall(r'<div class="contson".*?>(.*?)</div>', html, re.DOTALL)
21     contents = []
22     for content in content_tags:
23         content = re.sub(r'<.*?>', '', content)
24         contents.append(content.strip())
25     poems = []    
26     for value in zip(titles, dynasties, authors, contents):
27         title, dynasties, authors, content = value
28         poem = {
29             'title': title,
30             'dynasties': dynasties,
31             'authors': authors,
32             'content': content
33         }
34         print(poem)
35         poems.append(poem)
36     return poems
37 
38 
39 def main():
40     page_num = 10
41     for i in range(1, page_num+1):
42         url = 'https://www.gushiwen.org/default_{0}.aspx'.format(i)
43         html = get_html(url)
44         parse_html(html)
45 
46 
47 if __name__ == '__main__':
48     main()

运行结果

 

转载于:https://www.cnblogs.com/MC-Curry/p/9429442.html


http://www.niftyadmin.cn/n/1203575.html

相关文章

VIM显示乱码解决方案

字符集(charset) 代码点(code point) 以ASCII为例&#xff0c;它为每一个字符分配一个数字序号&#xff0c;比如A的编码点是65&#xff0c;所有代码点的集合就叫字符集 字符编码(char encoding) 字符编码是代码点的二进制存储格式。一个字符集会有多种存储格式&#xff0c;比如…

动手学深度学习之卷积和卷积层

卷积神经网络 卷积 从全连接到卷积 分类猫和狗的图片 使用一个还不错的相机采集图片(12M像素)RGB图片有36个元素使用100大小的单隐藏层MLP&#xff0c;模型有3.6B个元素 远多于世界上所有的猫和狗的总和(900M狗&#xff0c;600M猫) 我们在图片中找Waldo在哪里&#xff0c;…

小马笔记

引言 作为前端程序员&#xff0c;在走入前端这条道路一年之后&#xff0c;深深地感受到技术不精带来的屈辱、重复劳动带来的疲惫、知识众多带来的压力。这些原因都成为了推动我写前端101天的最原始的动力。接下来我会用101天的时间讲解101个前端知识点。希望对正在前端道路上奋…

卷积神经网络之卷积层中的多输入多输出通道

多个输入通道 参数图像可能有RGB三个通道转换为灰度会丢失信息 每一个通道都有一个卷积核&#xff0c;结果是所有通道卷积结果的和 用公式表达如下&#xff1a;这里cic_ici​就是输入的通道数&#xff0c;卷积核的个数应该和输入的通道数一样&#xff0c;不管我们的输入有多少…

RocketMQ事务消息实现分析

这周RocketMQ发布了4.3.0版本&#xff0c;New Feature中最受关注的一点就是支持了事务消息&#xff1a; 今天花了点时间看了下具体的实现内容&#xff0c;下面是简单的总结。 RocketMQ事务消息概要 通过冯嘉发布的《RocketMQ 4.3正式发布&#xff0c;支持分布式事务》一文可以看…

动手学深度学习之卷积神经网络之池化层

池化层 卷积层对位置太敏感了&#xff0c;可能一点点变化就会导致输出的变化&#xff0c;这时候就需要池化层了&#xff0c;池化层的主要作用就是缓解卷积层对位置的敏感性 二维最大池化 这里有一个窗口&#xff0c;来滑动&#xff0c;每次我们将窗口中最大的值给拿出来 还…

获取取并下载tuku的漫画的爬虫

代码地址如下&#xff1a;http://www.demodashi.com/demo/12842.html 概述 一个简单的爬虫&#xff0c;实现是爬取tuku网站的漫画。并下载到脚本的文件夹中&#xff0c;下载的漫画按照章节名放在各自的文件夹中&#xff0c;本脚本直接命令行执行&#xff0c;无图形界面 详细 一…

动手学深度学习之经典卷积神经网络之LeNet

LeNet LeNet的结构如下&#xff0c;它的输入是一个32 * 32的image&#xff0c;放到一个5 * 5的卷积层中&#xff0c;它的通道数是6&#xff0c;它的输出是一个28 * 28的一个矩阵&#xff0c;这里有个概念叫做feature map&#xff0c;也就第卷积层的输出的那一坨就是feature ma…