很酷哦!
不过,对我这个选择恐惧症来说,也很纠结
我们先看一下有哪些要求吧?

中草药名人参西洋参?还有啥???

作为一个不怎么吃药的非医学生,这题真的超纲了呀。我只能求助度娘。

但是有个问题,我会百度,别人也会百度呀。

那这些好听的名字,我估计大半都被人用去了。

不行,我一定要取一个独一无二的名字!

这些人为挑选出来的名字代表了大众普遍的审美

我要做颜色不一样的烟火

我要自己筛选~

素材呢?素材自己爬一下呗。

本次使用的是Python(编译器是pyhcarm)

作为一个python新手

虽说这次任务是为了取名字

但更重要的也是为了练习一下自己刚学习的python

我发现,看书看视频

这些单纯索取的学习方式不太适合我 : (

目标驱动法才更使得我有学习的动力 : )

我挑选的网站是“中药网”(侵删!)

(http://m.zhongyoo.com/)

切换到“查询”页面,一共有65页

每页有13种中草药(除了最后一页只有8种)

国际惯例,第一步右击“检查”,找中草药的名字在哪块:

看样子是在class=t的位置,再看一下其他的中药名,也都在这个位置,那就get吧。

1res=requests.get(‘http://m.zhongyoo.com/name/page_1.html’)
2res.encoding='gbk'
3soup=BeautifulSoup(res.text,'html.parser')
4
5plant_names=[]
6names=soup.select('.t')
7for name in names:
8    plant_names.append(name.text)

没错,7行就爬下了这一页的所有名字。

  • 观察一下第1页网址:http://m.zhongyoo.com/name/page_1.html

  • 观察一下第2页网址:http://m.zhongyoo.com/name/page_2.html

  • 观察一下第3页网址:http://m.zhongyoo.com/name/page_3.html

区别在哪呀?小学生都能看出来,在倒数第6个字符!从1变成了2再变成了3。

发现了这个规律,我们就能愉快地利用函数来爬后面几页的名字啦。参数自然就是从1变到65的变量啦。

不得不说

控制台不断弹出来的“第X页数据摘取完毕!”这些话

真的太治愈了哈哈哈

此画面引起极端舒适!

然后我们就如愿得到这840个名字啦!

  

(部分结果)

BUT!

正当我美滋滋准备导出数据开始挑选的时候

我“一不小心”点进一个中草药的链接里面去

发现……

???还有别名??

也行吧,那就别名也爬一下…

既然是点进每一个链接才能查找到“别名”的数据,那么在起始页不仅要爬名字,还要将每个链接都抓取出来。“检查”了一下,发现链接位置和之前的名字不太一样:

搞不太清楚具体在哪里,因为不在普通的‘text’里面,我只能另辟蹊径,尝试一下正则表达式把地址找出来(天呐,其实我这个没玩过……但是迟早要学的,那就是现在吧!)

通过临时学习,我模仿了一下,我发现!正则表达式!真的很好用!真香!

1pattern = re.compile(r'http:.*?.html')
2plant_links = pattern.findall(html_sample)

放到前面的函数里面,蹭蹭蹭,每一类中草药的名字和具体链接就出来啦!

有了链接就可以开始爬具体页面的别名了。

跟之前差不多的步骤,我再次用了正则表达式:查查筛筛扣扣拆拆合合,艰难而成功地找出来所有的别名:

 1def getPlantBynames(url):2    res=requests.get(url)3    res.encoding='gbk'4    html_sample=res.text5    soup=BeautifulSoup(html_sample,'html.parser')6    header=soup.select('.art_1')7    bynames=header[0].text.replace("\n", "").replace('\t', '').strip()89    result=[]
10    if re.search('【别名】.*?【英文名】', bynames) is not None:
11        single_name = re.search('【别名】.*?【英文名】', bynames).group()[4:-8]
12        result.extend(single_name.split('、'))
13    return result

方法肯定有很多种,我…下次再学!

然后呢,我们再把这个获取别名的函数放进刚刚的大函数里面,就可以在获取链接之后直接把链接当作参数用到这个函数里面,结果不用再导出链接,直接把“本名”和“别名”输出就好了。不瞒你们说,有四千多个名字!

我们先来瞧一瞧古人起名字都喜欢用什么字吧!

以前用过R语言做词云

现在为了学习我决定尝试用python

虽然语法不太一样

但是思想大致一样

我又看到了似曾相识的“jieba”:

 1names=str()2for name in df['name']:3    names=names+name45result=jieba.cut(names,cut_all=True)6789cloud_text="".join(result)
10fre= Counter(cloud_text)
11
12mask = np.array(Image.open('flower.jpg')) # 定义词频背景
13    wc = wordcloud.WordCloud(
14    font_path='Hiragino Sans GB.ttc', # 设置字体格式
15    mask=mask, # 设置背景图
16    max_words=200, # 最多显示词数
17    max_font_size=150 # 字体最大值
18)
19
20wc.generate_from_frequencies(fre) # 从字典生成词云
21image_colors = wordcloud.ImageColorGenerator(mask) # 从背景图建立颜色方案
22wc.recolor(color_func=image_colors) # 将词云颜色设置为背景图方案
23plt.imshow(wc) # 显示词云
24plt.axis('off') # 关闭坐标轴
25plt.show() # 显示图像
26wc.to_file('plant_names_pic.png')

(学习这个大概花了我一半的时间,因为脑子一直没转过弯来)

词频top如下:

词云结果如下:

果然频率最高的就是那些“花”啊“草”的

比较令我意外的是“子”出现的频率很蛮高的

我个人觉得名字带“子”的还蛮好听的~


好了,现在开始回归正题,找花名!

用万能excel筛选出长度为2的名字

还有一千多个满足要求的!

之前吧,觉得百度出来的选择太少了

很容易和别人选得一样,没意思;

现在吧,选择倒是有很多

但是眼睛看看也很累诶~

删除掉自己名字里确切不想要的的一些字:

草,花,山,石,红,老,麻,菊,藤……

还剩好几百个名字……

那筛选出一些自己觉得比较好听的字

看看有没有适合的名字:

带“白的”:

带“苏”的:

带“青”的:

带数字的:

内心bb:看着吧,觉得都挺不错,但仔细看看,又觉得都不咋滴……

看来,对我这种选择恐惧症来说

不管是一千个选择还是两个选择,我都选不粗来!

我看呀,最好就是只给我一个选项!

什么“我来教你如何从四千个名字中挑选出最适合自己的花名”

我教不了!

886

对了,有没有善良的人…给我一点点名字的建议…

不然我就决定叫“柚子”了

因为我家乡盛产文旦!

什么?柚子不是中草药?

无所谓啦,反正hr说了

一般水果都可以入药的!(逃…

﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

生活不易,必须多才多艺。

生活不易,必须多才多艺。

数据很多,Yura分析跟你说。

不定期更新数据分析小文章

请大家多多关注多多点赞多多转发:)

关注我

为了取一个花名,我爬下了中草药网所有的名字!相关推荐

  1. 在anaconda下创建我的第一个scrapy爬虫——爬取dmoz网站某一网址下的目录的链接名称以及链接地址...

    这里我用的python工具是anaconda. 1.首先创建一个scrapy工程: 打开anaconda promt命令行(注意这里不是使用cmd打开windows下的命令行),进入到需要创建工程的目 ...

  2. python爬b站评论_一个简单的爬取b站up下所有视频的所有评论信息的爬虫

    心血来潮搞了一个简单的爬虫,主要是想知道某个人的b站账号,但是你知道,b站在搜索一个用户时,如果这个用户没有投过稿,是搜不到的,,,这时就只能想方法搞到对方的mid,,就是 space.bilibil ...

  3. 技术图文:如何爬取一个地区的气象数据(下)?

    背景 架空线路常见的故障有:风偏闪络故障.雷击跳闸故障.雷击断股故障.线路覆冰故障.线路污闪故障.线路外力破坏故障.线路鸟害故障等等.从这些故障中,我们可以看出天气对线路的安全运行起到非常重要的作用. ...

  4. python实战1.0——爬取知乎某问题下的回复

    python实战1.0--爬取知乎某问题下的回复 确定问题 爬取 进行简单筛选 保存数据 # 获取问题下的回复总数 def get_number():url = 'https://www.zhihu. ...

  5. Python爬虫实例(2)-用BeautifulSoup爬取一个网页上的多张照片(以百度贴吧为例)

    上一篇博客,实现了下载一张图片的简单爬虫.但是其代码,仅仅能下载一张图片.爬虫作为数据分析的第一步工作,需要爬取的是海量数据:假设我想下载一个网站几十张图片,那怎么实现呢? 首先,我们利用框图或者伪代 ...

  6. python爬取豆瓣书籍_Python 爬取豆瓣读书标签下的书籍

    这几天想爬下豆瓣读书时发现 github 上他人分享的源码都有一定年份了,豆瓣读书的页面貌似也稍微改了,于是就在前人轮子的基础上改进一下重新爬下豆瓣读书.Python 版本是 3.7. 1.爬取信息 ...

  7. Python之 - 使用Scrapy建立一个网站抓取器,网站爬取Scrapy爬虫教程

    Scrapy是一个用于爬行网站以及在数据挖掘.信息处理和历史档案等大量应用范围内抽取结构化数据的应用程序框架,广泛用于工业. 在本文中我们将建立一个从Hacker News爬取数据的爬虫,并将数据按我 ...

  8. Python借助爬虫Requests+BS4爬取人民教育出版社义务教育下学期课本(一)

    经过一晚上的休息,我已经重新从阴影中站了起来,并重新发现了一个人性化的网站,一起来看看这个网站吧 来到了人民教育出版社的官网,一看,顿时晕眩三秒,我昨天的努力不都白费了吗,只得重新打起精神,研究一下这 ...

  9. Python爬取一个网站的所有图片(附源码)

    前面搭建爬虫环境完成第一个实例爬取信息,今天继续,Python第二个项目:爬取一个网站的所有图片,看到一个网站的图片,想要弄到本地,一张张保存太过于麻烦,于是,往下看: 爬取目标网站:https:// ...

最新文章

  1. Kubernetes对象模型
  2. 远程连接MySQL慢的原因及解决
  3. 跨链(5)“蚂蚁区块链”之跨链数据连接服务
  4. ABAP [div '/'] 的区别与妙用
  5. Hadoop赠品–综述
  6. 145. 二叉树的后序遍历
  7. php符号 set,PHP 符号大全
  8. 上位机服务器通讯协议,家庭监护终端与手机、上位机及服务器通讯协议22.doc
  9. 怎样安装php5_如何安装php5.3
  10. 4.1 - 《机器学习基石》Home Work 1 Q.15-17
  11. 互动投影游戏加密狗复制教程!
  12. 判断是否是支付宝客户端环境和支付宝版本
  13. 计算机程序图标在哪,我的文档不见了 我的文档路径在哪 找回图标方法_电脑软硬件应用网_做中国最专业的计算机应用解决技术网站...
  14. Java 8?还记得那年大明湖畔的Java 7吗?
  15. 《那些年啊,那些事——一个程序员的奋斗史》——123
  16. php家居门户源码,家居装修门户模板源码discuz模板 php家居装修网论坛源码
  17. (十二)幸福之家 - 1
  18. matlab左侧显示当前文件夹,matlab还原默认布局,matlab左侧显示
  19. P1217 回文质数
  20. SQLPLUS 命令

热门文章

  1. 简单的通讯录管理系统(linux C)
  2. EXTJS系列笔记—实现 grid.ColumnModel 中每行后面的操作按钮
  3. SSM实战项目_青橙商城学习笔记和踩坑指南
  4. 净空法师:年轻时候好,是你前生所修的
  5. 滴滴打车,中国式互联网结出的一朵大奇葩
  6. Nginx系列之负载均衡算法策略
  7. git有很多方法根据
  8. lastpass安卓最新版_lastpass插件下载|LastPass安卓下载_v4.1.742_9ht安卓下载
  9. Echarts 开源的可视化图表库 快速制图工具
  10. WiFi 6E与WiFi 6最大的不同