用Python把网页https://www.qqxiuzi.cn/hanzi/gfhz/8105.html中的通用规范汉字,用网页http://www.yedict.com/zsbs.htm中的部首分析,取得每个汉字的部首,并写入文件
时间: 2023-12-29 18:05:18 浏览: 150
首先,我们需要用Python爬取这两个网页的内容。可以使用requests和BeautifulSoup库来实现。
```python
import requests
from bs4 import BeautifulSoup
# 爬取通用规范汉字网页
url1 = "https://www.qqxiuzi.cn/hanzi/gfhz/8105.html"
r1 = requests.get(url1)
soup1 = BeautifulSoup(r1.content, "html.parser")
# 爬取部首分析网页
url2 = "http://www.yedict.com/zsbs.htm"
r2 = requests.get(url2)
soup2 = BeautifulSoup(r2.content, "html.parser")
```
接着,我们需要从部首分析网页中提取每个汉字的部首。可以使用正则表达式来匹配部首信息。
```python
import re
# 获取部首信息
bs_dict = {}
for tr in soup2.find_all("tr"):
td_list = tr.find_all("td")
if len(td_list) >= 2:
hanzi = td_list[0].text.strip()
bushou = re.findall(r"[\u2E80-\u9FFF]", td_list[1].text)
if len(bushou) > 0:
bs_dict[hanzi] = bushou[0]
```
现在,我们可以遍历通用规范汉字网页中的每个汉字,取得它的部首信息,并写入文件。
```python
# 写入文件
with open("output.txt", "w", encoding="utf-8") as f:
for tr in soup1.find_all("tr"):
td_list = tr.find_all("td")
if len(td_list) >= 2:
hanzi = td_list[0].text.strip()
if hanzi in bs_dict:
bushou = bs_dict[hanzi]
f.write(f"{hanzi}\t{bushou}\n")
```
最终,我们得到一个名为output.txt的文件,其中每一行表示一个汉字和它的部首,以制表符分隔。
阅读全文