想为孩子取名,发现一个姓名打分网站,可以用爬虫进行打分
- 生成想要的名字
# 填写自己喜欢的单字姓名,进行排列组合
my_name_str = ["苏","雪","语","夕","汐","渊","思","源","若","羽","知","兮","暮","逸","君","夫","则","泽"]
# 用来存储生成的姓名
my_name = []
# 填写自己的姓
first_name = "魏"
for i in my_name_str:
for j in my_name_str:
if i!=j:
my_name.append(i+j)
print(my_name)
- 根据生成的名字组合成url进行请求
import requests
import re
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/67.0.3396.79 Safari/537.36'
}
url = 'https://xmcs.buyiju.com/'
# html=requests.get(url,headers)
params = {
'xs': first_name ,
'action': 'test'
}
# 解析网页,获取分数
match1 = '<font color=ff0000 size=5>'
match2 = '</font>'
all_my_name = {}
for i in my_name:
params["mz"] = i
html = requests.post(url, params)
html.encoding = html.apparent_encoding
my_html = html.text
my_html = my_html[re.search(match1, my_html, flags=0).span()[1]:]
my_html = my_html[:re.search(match2, my_html, flags=0).span()[0]]
name = first_name+i
all_my_name[name] = float(my_html)
print(all_my_name[name])
dict2 = sorted(all_my_name)
- 打印输出
my_name_2 = {}
dict1 = []
for d in dict2:
if all_my_name[d] > 80:
print(d+":"+str(all_my_name[d]))
my_name_2[d] = all_my_name[d]
dict1.append(d)
- 大于80分的姓名展示(部分)
魏兮君:87.0
魏兮汐:87.0
魏兮泽:87.0
魏兮渊:84.0
魏兮源:83.0
魏兮语:83.0
魏则兮:86.0
魏则君:84.0
魏则夫:86.0
魏则汐:84.0
魏则渊:81.0
魏则源:86.0
魏则羽:92.0
。。。