有时候需要随机取很多名字,又不想费脑子,我们可以利用python的random模块来随机取名
import requests,openpyxl
import numpy as np
from bs4 import BeautifulSoup
#第一步:爬取2500个常用汉字
URL='https://www.zdic.net/zd/zb/cc1/' #主网页
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"} #没个人的浏览器这里可能不一样
html=requests.get(url=URL,headers=headers)
res=BeautifulSoup(html.text,"html.parser")
all_info=res.find("div",class_="nr-box")
Chinese=all_info.find_all("div",class_="bs_index3")
CH=[]
all_Chinese=[] #储存2500个常用汉字
for i in Chinese:
CH.append(i.text.strip('\n').split('\n')) #列表CH是列表嵌套列表的形式。需要转化成一个常规列表(每个元素是一个文字)
for ch in CH:
for i in ch:
all_Chinese.append(i)
#第二步,制作随机名
name_list=[] #储存名字的列表
for n in range(100): #想要取几个随机名字就改成多少,这里是100个
idxs = np.random.randint(0, len(all_Chinese), size=6) # 生成长度为6的随机数组,作为索引
name=[] #用于存取6个字符的列表
for i in idxs:
name.append(all_Chinese[i])
name1="".join(name) #将列表中的元素拼接成字符串并且储存在列表中
name_list.append([name1])
print(name1)
#第三步,写入excel中:
wb = openpyxl.Workbook() #写入对象,用到openpyxl.Workbook()函数
sheet = wb.active #获取该工作薄的活动工作表,通常是第一个sheet
sheet.title = '随机结果' #把活动工作表命名为‘随机结果’
sheet["A1"]="随机名字(6个字符)"
for i in name_list:
sheet.append(i)
wb.save('D:\\Python-study\\test\\随机取名.xlsx') #把该工作薄命名并保存