通过 Python 来分析关于夏天的诗句

网友投稿 421 2022-08-30


通过 Python 来分析关于夏天的诗句

通过 Python 来分析关于夏天的诗句,我主要是通过 ​​来抓取夏天像相关的诗歌。

环境介绍:

Python 3.7Elasticsearch 7.10.2elasticsearch-head

数据获取

我主要是通过 ​​BeautifulSoup​​​ 进行数据抓取,然后存储到本地的 ​​Elasticsearch​​

#!/usr/bin/env python# coding:utf-8import lxmlimport requestsfrom bs4 import BeautifulSoupfrom elasticsearch import Elasticsearchhost = '127.0.0.1' # 服务器 host 地址post = 9200# 1. 创建索引def create_index(): es = Elasticsearch([{'host': host, 'port': post}]) # 判断索引是否存在 if not es.exists(index="poetry", id=0): # 创建索引 doc = { "mappings": { "properties": { "title": { "type": "keyword" }, "epigraph": { "type": "keyword" }, "dynasty": { "type": "keyword" }, "author": { "type": "keyword" }, "content": { "type": "text" } } } } es.create(index='poetry', body=doc, id=0)# 2. 诗歌入库def get_poetry(list_url): es = Elasticsearch([{'host': host, 'port': post}]) # 取得列表页面 html = requests.get(list_url).text soup = BeautifulSoup(html, "lxml") typecont = soup.find_all(attrs={"class": "typecont"}) # 遍历列表 for div in typecont: for ch in div.children: if ch.name == 'span': # 取得诗词内容 print('get:', ch.a.text, ch.a.attrs['href']) html = requests.get('+ ch.a.attrs['href']).text soup = BeautifulSoup(html, "lxml") cont = soup.select('.main3 .left .sons .cont')[0] # 标题 title = cont.h1.text # 词牌 epigraph = "" if '·' in title: epigraph = title[:title.index('·')] al = cont.p.select('a') # 朝代 dynasty = al[1].text # 作者 author = al[0].text # 内容 content = cont.select('.contson')[0].text.strip() # 索引数据 doc = { "title": title, "epigraph": epigraph, "dynasty": dynasty, "author": author, "content": content } # ret = es.index(index='poetry', doc_type='poetry', body=doc) ret = es.index(index='poetry', body=doc) print(ret)# 主方法def main(): create_index() get_poetry(' #唐诗 #get_poetry(' #宋词 #get_poetry('__name__ == '__main__': main()

执行日志如下:

数据查询

我们可以通过 ​​elasticsearch-head​​​ 插件查询 ​​李白​​ 的写过那些有关夏天的诗歌。结果如下:

从上面可以看到我们并没有完全的匹配,对于 ​​elasticsearch​​​ 其实是做了一个分词后的查询。 这样其实非常适合我们全文搜索。比如我通过内容再搜索一下 ​​​初夏​​

其实这个搜索的结果还是非常的好的,就出来了 ​​白居易​​​ 的 ​​首夏南池独酌​​

春尽杂英歇,夏初芳草深。薰风自南至,吹我池上林。绿蘋散还合,赪鲤跳复沉。新叶有佳色,残莺犹好音。依然谢家物,池酌对风琴。惭无康乐作,秉笔思沉吟。境胜才思劣,诗成不称心。

如果我们想全值匹配可以通过一下方式查询


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java的Collection集合的常用方法详解
下一篇:# yyds干货盘点 # frida辅助分析xx牛登录算法frida辅助分析xx牛登录算法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~