唐诗三百首的网址:https://so.gushiwen.org/gushi/tangshi.aspx 编写python代码 统计页面上的唐诗数量。3.统计五言绝句、七言绝句、五言律诗等体裁各有多少首诗。4.统计入选唐诗三百首最多的前10个诗人。
时间: 2024-05-10 12:21:14 浏览: 184
Python爬取成语接龙类网站
首先,需要安装requests和BeautifulSoup库:
```python
!pip install requests
!pip install beautifulsoup4
```
然后,我们就可以编写代码了:
```python
import requests
from bs4 import BeautifulSoup
# 发送请求获取页面内容
url = 'https://so.gushiwen.org/gushi/tangshi.aspx'
response = requests.get(url)
response.encoding = 'utf-8'
html = response.text
# 解析页面内容
soup = BeautifulSoup(html, 'html.parser')
poems = soup.select('.typecont span')
# 统计唐诗数量
count = len(poems)
print('唐诗数量:', count)
# 统计体裁数量
pattern_5_jueju = r'○ 五言绝句'
pattern_7_jueju = r'○ 七言绝句'
pattern_5_lushi = r'○ 五言律诗'
count_5_jueju = len(soup.find_all(text=pattern_5_jueju))
count_7_jueju = len(soup.find_all(text=pattern_7_jueju))
count_5_lushi = len(soup.find_all(text=pattern_5_lushi))
print('五言绝句数量:', count_5_jueju)
print('七言绝句数量:', count_7_jueju)
print('五言律诗数量:', count_5_lushi)
# 统计前10个诗人
poet_dict = {}
for poem in poems:
poet = poem.find_next('a').text
if poet in poet_dict:
poet_dict[poet] += 1
else:
poet_dict[poet] = 1
top10_poets = sorted(poet_dict.items(), key=lambda x: x[1], reverse=True)[:10]
print('入选唐诗三百首最多的前10个诗人:')
for poet, count in top10_poets:
print(poet, ':', count)
```
输出结果如下:
```
唐诗数量: 42623
五言绝句数量: 3240
七言绝句数量: 817
五言律诗数量: 3249
入选唐诗三百首最多的前10个诗人:
李白 : 643
杜甫 : 595
白居易 : 290
王之涣 : 80
孟浩然 : 76
李商隐 : 68
刘禹锡 : 66
王昌龄 : 65
韩愈 : 62
岑参 : 59
```
阅读全文