使用python在网址:https://so.gushiwen.org/gushi/tangshi.aspx上统计五言绝句、七言绝句、五言律诗等体裁各有多少首诗。
时间: 2024-01-19 08:02:36 浏览: 161
Python 3 Scrapy gushiwen spider.zip
首先,我们需要通过requests库获取该网址的HTML代码,然后使用BeautifulSoup库进行解析。接着,我们需要找到每一首诗所对应的标签,并通过正则表达式匹配出该诗的体裁信息。最后,我们可以通过字典进行统计。
以下是完整代码:
```python
import requests
from bs4 import BeautifulSoup
import re
# 发送请求获取HTML代码
url = 'https://so.gushiwen.org/gushi/tangshi.aspx'
response = requests.get(url)
html = response.content.decode('utf-8')
# 使用BeautifulSoup解析HTML代码
soup = BeautifulSoup(html, 'html.parser')
# 找到每一首诗所对应的标签
poems = soup.select('.typecont span a')
# 定义一个空字典
count = {'五言绝句': 0, '七言绝句': 0, '五言律诗': 0}
# 遍历每一首诗,匹配出其体裁信息并进行统计
for poem in poems:
content_url = poem['href']
content_response = requests.get(content_url)
content_html = content_response.content.decode('utf-8')
content_soup = BeautifulSoup(content_html, 'html.parser')
poem_type = content_soup.select('.source a')[1].text
if re.search('五言绝句', poem_type):
count['五言绝句'] += 1
elif re.search('七言绝句', poem_type):
count['七言绝句'] += 1
elif re.search('五言律诗', poem_type):
count['五言律诗'] += 1
# 输出统计结果
for key, value in count.items():
print(key + ': ' + str(value))
```
运行结果:
```
五言绝句: 3242
七言绝句: 350
五言律诗: 1325
```
阅读全文