用Python做词云可视化带你分析海贼王、火影和死神三大经典动漫

对于动漫爱好者来说,海贼王、火影、死神三大动漫神作你肯定肯定不陌生了。小编身边很多的同事仍然深爱着这些经典神作,可见“中毒”至深。今天小编利用Python大法带大家分析一下这些神作,看看这些神作到底在讲些神马。

Python大佬用词云可视化带你分析海贼王、火影和死神三大经典动漫

人生苦短,我用Python。小编利用Python网络爬虫爬取了豆瓣网,将网站上关于这三部动漫的评论全部抓取下来,之后通过Python的第三方库jieba分词进行词频统计和分析,最后通过matplotlib库和wordcloud库将关键词制作成词云进行可视化展示。

词云是神魔?”词云”这个概念由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)于近日提出。”词云”就是对网络文本中出现频率较高的”关键词”予以视觉上的突出,形成”关键词云层”或”关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。

话不多说,直接上图,下图是《海贼王》的豆瓣评论词云可视化展示图。

Python大佬用词云可视化带你分析海贼王、火影和死神三大经典动漫

《海贼王》豆瓣评论词云

对于《海贼王》来说,世界,梦想,搞笑,感动,冒险,自由等关键词是大家对这部热血动漫的评价。在人物展现了,路飞、索隆和艾斯榜上有名。路飞这个贯穿这个海贼王的名字毫无疑问出现的次数最多,接下来是大剑豪索隆和死去的艾斯。

路飞是草帽海贼团船长,由于他的标志性特征是一顶草帽,因此常被直接称呼为草帽小子或草帽路飞,他的梦想是找到传说中的One Piece,成为海贼王。

Python大佬用词云可视化带你分析海贼王、火影和死神三大经典动漫

《海贼王》人物—路飞

索隆是草帽海贼团第一位伙伴,职位是剑士,团内三主力之一,11位超新星的其中一人,悬赏金额在香波第诸岛排行第10名,特征是绿色头发(短发)、黑色的头巾(大多缠在左手臂上)、绿色的腰带(肚兜)和左耳配戴了三个耳环。

Python大佬用词云可视化带你分析海贼王、火影和死神三大经典动漫

《海贼王》人物—索隆

艾斯是日本动漫《海贼王》里的虚构人物,统称为“火拳”,是主角蒙奇·D·路飞的义兄,已逝。他的形象是黑发,常戴着一顶橘色的帽子,在帽子上有奸笑和难过这两种表情图案,而且帽子的绳子绑着一个骷髅头的牌子,是白胡子海贼团第二队队长,实力不凡。曾被一度邀请加入七武海。后被黑胡子击败,并且交与海军,关押在海底大监狱。后因为保护路飞用身体去挡海军大将赤犬的岩浆拳,结果被贯穿了身体。内脏也被烧伤,船医通过检查发现其内脏已被烧坏无法医治,因伤势过重死亡。

Python大佬用词云可视化带你分析海贼王、火影和死神三大经典动漫

《海贼王》人物—艾斯

下图是《火影忍者》的豆瓣评论词云可视化展示图。

Python大佬用词云可视化带你分析海贼王、火影和死神三大经典动漫

《火影忍者》豆瓣评论词云

毋庸置疑,喜欢《火影忍者》的人不枚胜举,大家对这部动漫的喜爱度和评价也较高。从词云可视化来看,原创、剧情、拖沓、越来越、太长等相对负面的词有蛮多的。究其原因,那就是剧情拖沓,到后面有让人看不下去的感觉,甚至给人一种烂尾的感觉。但是总体上来说,小伙伴们对该剧的评价还是偏向于喜欢的~~~

在人物方面,主人公鸣人和他的好基友佐助很明显的出现在词云中。鸣人是日本动漫《火影忍者》的主角。火之国木叶隐村的忍者,四代目火影波风水门和二代九尾人柱力漩涡玖辛奈之子,六道仙人次子阿修罗转世。最后他成功控制了体内的九尾查克拉,并在第四次忍界大战中与佐助携手抗敌,成为了拯救世界的英雄。最后,鸣人终于实现自己的梦想,成为了火影。

Python大佬用词云可视化带你分析海贼王、火影和死神三大经典动漫

《火影忍者》人物—鸣人

佐助是日本动漫《火影忍者》中的第二男主角。火之国木叶隐村宇智波一族的天才忍者,六道仙人长子因陀罗的转世。后来战争结束后,佐助因使世界和平的道路和鸣人不同,而在终结之谷与鸣人进行了宿命的一战,两败俱伤 。佐助最终被鸣人所感动,认同了鸣人使世界和平的道路,并重新成为木叶的一员。之后为了更加看清现在的世界开始了独自一人的赎罪之旅。

Python大佬用词云可视化带你分析海贼王、火影和死神三大经典动漫

《火影忍者》人物—佐助

下图是《死神》的豆瓣评论词云可视化展示图。

Python大佬用词云可视化带你分析海贼王、火影和死神三大经典动漫

《死神》豆瓣评论词云

《死神》,看到这个名字都觉得毛骨悚然,好怕怕的赶脚。死神是日本心理悬疑推理漫画《Death Note》(《死亡笔记》)中的角色。死神拥有死亡笔记,名字被写在这本笔记上的人就会死。从词云可视化上来看,剧情、动画、漫画、热血、原创、完结、蓝染、尸魂界等元素强调的比较多。

在人物方面,蓝染鹤立鸡群。蓝染是死神当中幕后最大的BOSS,拥有很强的力量,想成为改变整个世界的至高无上的神,不相信任何人,除了银。因为他认为银跟他一样,只有银才了解他。他想拥有力量,更强的力量。他和市丸银既是知己,又是唯一了解彼此的人,市丸银跟随他也是有目的的。只不过起初蓝染不知道罢了 不过,蓝染的死跟市丸银是没有关系的,但也不能说是绝对没有关系的,因为只有银比任何人都了解蓝染的,蓝染目前在TV版动画中还没有死亡。在漫画连载中仅仅只是被封印了,也没有死亡。

Python大佬用词云可视化带你分析海贼王、火影和死神三大经典动漫

《死神》人物—蓝染

通过上面的词云可视化展示,小编相信你肯定知道了《海贼王》、《火影忍者》和《死神》三步巨作想表达的主旨了。不难发现,这三部动漫巨著都是热血动漫,从评论中关于热血的认同度占有很大的比重。果不其然,在我们观看这三部神剧的时候,也确实感受到了热血,里面的人物一言不合就干架,正所谓不热血,不少年~~~

以上的分析仅代表小编个人的看法,欢迎小伙伴们拍砖~~~

—————— End ——————

往期精彩文章推荐:

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

在公众号后台回复下列关键词可以免费获取相应的学习资料:

Python、网络爬虫 、书籍、数据分析、机器学习、数据结构、

大数据、服务器、Spark、Redis、C++、C、php、

mysql、java、Android、面试题、课堂、其他

Python网络爬虫四大选择器(正则表达式、BS4、Xpath、CSS)总结

前几天小编连续写了四篇关于Python选择器的文章,分别用正则表达式、BeautifulSoup、Xpath、CSS选择器分别抓取京东网的商品信息。今天小编来给大家总结一下这四个选择器,让大家更加深刻的理解和熟悉Python选择器。

一、正则表达式

正则表达式为我们提供了抓取数据的快捷方式。虽然该正则表达式更容易适应未来变化,但又存在难以构造、可读性差的问题。当在爬京东网的时候,正则表达式如下图所示:

Python网络爬虫四大选择器(正则表达式、BS4、Xpath、CSS)总结

利用正则表达式实现对目标信息的精准采集

此外 ,我们都知道,网页时常会产生变更,导致网页中会发生一些微小的布局变化时,此时也会使得之前写好的正则表达式无法满足需求,而且还不太好调试。当需要匹配的内容有很多的时候,使用正则表达式提取目标信息会导致程序运行的速度减慢,需要消耗更多内存。

二、BeautifulSoup

BeautifulSoup是一个非常流行的 Pyhon 模块。该模块可以解析网页,并提供定位内容的便捷接口。通过’pip install beautifulsoup4’就可以实现该模块的安装了。

Python网络爬虫四大选择器(正则表达式、BS4、Xpath、CSS)总结

利用美丽的汤去提取目标信息

使用 BeautifulSoup的第一步是将己下载的 HTML 内容解析为 soup文档。由 于大多 数网 页都不具备良好的HTML 格式,因此BeautifulSoup需要对实际格式进行确定。BeautifulSoup能够正确解析缺失的引号并闭合标签,此外还会添加<html >和<body>标签使其成为完整的HTML文档。通常使用find() 和find_all()方法来定位我们需要的元素。如果你想了解BeautifulSoup全部方法和参数,可以查阅BeautifulSoup的官方文档。虽然BeautifulSoup在代码的理解上比正则表达式要复杂一些,但是其更加容易构造和理解。

三、Lxml

Lxml模块使用 C语言编写,其解析速度比 BeautiflSoup更快,而且其安装过程也更为复杂,在此小编就不赘述啦。XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。

Python网络爬虫四大选择器(正则表达式、BS4、Xpath、CSS)总结

Xpath

使用 lxml 模块的第一步和BeautifulSoup一样,也是将有可能不合法的HTML 解析为 统一格式。 虽然Lxml可以正确解析属性两侧缺失的引号,并闭合标签,不过该模块没有额外添加<html >和<body>标签 。

在线复制Xpath表达式可以很方便的复制Xpath表达式。但是通过该方法得到的Xpath表达式放在程序中一般不能用,而且长的没法看。所以Xpath表达式一般还是要自己亲自上手。

四、CSS

CSS选择器表示选择元素所使用 的模式。BeautifulSoup整合了CSS选择器的语法和自身方便使用API。在网络爬虫的开发过程中,对于熟悉CSS选择器语法的人,使用CSS选择器是个非常方便的方法。

Python网络爬虫四大选择器(正则表达式、BS4、Xpath、CSS)总结

CSS选择器

下面是一些常用的选择器示例。

  • 选择所 有标签: *
  • 选择<a>标 签: a
  • 选择所有class=”link” 的元素: .l in k
  • 选择 class=”link” 的<a>标签: a.link
  • 选择 id= ” home ” 的<a>标签: a Jhome
  • 选择父元素为<a>标签的所有< span>子标签: a > span
  • 选择<a>标签内部的所有<span>标签: a span
  • 选择title属性为” Home ” 的所有<a>标签: a [title=Home]

五、性能对比

lxml 和正则表达式模块都是C语言编写的,而BeautifulSoup则是纯Python 编写的。下表总结了每种抓取方法的优缺点。

Python网络爬虫四大选择器(正则表达式、BS4、Xpath、CSS)总结

相对困难需要注意的是。lxml在内部实现中,实际上是将CSS选择器转换为等价的Xpath选择器。

六、总结

如果你的爬虫瓶颈是下载网页,而不是抽取数据的话,那么使用较慢的方法(如BeautifulSoup) 也不成问题。如果只需抓取少量数据,并且想要避免额外依赖的话,那么正则表达式可能更加适合。不过,通常情况下,l xml是抓取数据的最好选择,这是因为该方法既快速又健壮,而正则表达式和BeautifulSoup只在某些特定场景下有用。

Python网络爬虫四大选择器(正则表达式、BS4、Xpath、CSS)总结

——————- End ——————-

往期精彩文章推荐:

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

在公众号后台回复下列关键词可以免费获取相应的学习资料:

Python、网络爬虫 、书籍、数据分析、机器学习、数据结构、

大数据、服务器、Spark、Redis、C++、C、php、

mysql、java、Android、面试题、课堂、其他

如何利用CSS选择器抓取京东网商品信息

前几天小编分别利用Python正则表达式BeautifulSoupXpath分别爬取了京东网商品信息,今天小编利用CSS选择器来为大家展示一下如何实现京东商品信息的精准匹配~~

如何利用CSS选择器抓取京东网商品信息

CSS选择器

目前,除了官方文档之外,市面上及网络详细介绍BeautifulSoup使用的技术书籍和博客软文并不多,而在这仅有的资料中介绍CSS选择器的少之又少。在网络爬虫的页面解析中,CCS选择器实际上是一把效率甚高的利器。虽然资料不多,但官方文档却十分详细,然而美中不足的是需要一定的基础才能看懂,而且没有小而精的演示实例。

如何利用CSS选择器抓取京东网商品信息

京东商品图

首先进入京东网,输入自己想要查询的商品,向服务器发送网页请求。在这里小编仍以关键词“狗粮”作为搜索对象,之后得到后面这一串网址:
https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其中参数的意思就是我们输入的keyword,在本例中该参数代表“狗粮”,具体详情可以参考Python大神用正则表达式教你搞定京东商品信息。所以,只要输入keyword这个参数之后,将其进行编码,就可以获取到目标URL。之后请求网页,得到响应,尔后利用CSS选择器进行下一步的数据采集。

商品信息在京东官网上的部分网页源码如下图所示:

如何利用CSS选择器抓取京东网商品信息

部分网页源码

仔细观察源码,可以发现我们所需的目标信息在红色框框的下面,那么接下来我们就要一层一层的去获取想要的信息。

在Python的urllib库中提供了quote方法,可以实现对URL的字符串进行编码,从而可以进入到对应的网页中去。

如何利用CSS选择器抓取京东网商品信息

CSS选择器在线复制

很多小伙伴都觉得CSS表达式很难写,其实掌握了基本的用法也就不难了。在线复制CSS表达式如上图所示,可以很方便的复制CSS表达式。但是通过该方法得到的CSS表达式放在程序中一般不能用,而且长的没法看。所以CSS表达式一般还是要自己亲自上手。

直接上代码,利用CSS去提取目标信息,如商品的名字、链接、图片和价格,具体的代码如下图所示:

如何利用CSS选择器抓取京东网商品信息

代码实现

如果你想快速的实现功能更强大的网络爬虫,那么BeautifulSoupCSS选择器将是你必备的利器之一。BeautifulSoup整合了CSS选择器的语法和自身方便使用API。在网络爬虫的开发过程中,对于熟悉CSS选择器语法的人,使用CSS选择器是个非常方便的方法。

最后得到的效果图如下所示:

如何利用CSS选择器抓取京东网商品信息

最终效果图

新鲜的狗粮再一次出炉咯~~~

如何利用CSS选择器抓取京东网商品信息

CSS选择器

关于CSS选择器的简单介绍:

BeautifulSoup支持大部分的CSS选择器。其语法为:向tag对象或BeautifulSoup对象的.select()方法中传入字符串参数,选择的结果以列表形式返回,即返回类型为list。

tag.select(“string”)

BeautifulSoup.select(“string”)

注意:在取得含有特定CSS属性的元素时,标签名不加任何修饰,如class类名前加点,id名前加 #。

如何利用Xpath选择器抓取京东网商品信息

如何利用Xpath选择器抓取京东网商品信息

前几小编分别利用Python正则表达式和BeautifulSoup爬取了京东网商品信息,今天小编利用Xpath来为大家演示一下如何实现京东商品信息的精准匹配~~

HTML文件其实就是由一组尖括号构成的标签组织起来的,每一对尖括号形式一个标签,标签之间存在上下关系,形成标签树;XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。

如何利用Xpath选择器抓取京东网商品信息

京东网狗粮商品

首先进入京东网,输入自己想要查询的商品,向服务器发送网页请求。在这里小编仍以关键词“狗粮”作为搜索对象,之后得到后面这一串网址:
https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其中参数的意思就是我们输入的keyword,在本例中该参数代表“狗粮”,具体详情可以参考Python大神用正则表达式教你搞定京东商品信息。所以,只要输入keyword这个参数之后,将其进行编码,就可以获取到目标URL。之后请求网页,得到响应,尔后利用bs4选择器进行下一步的数据采集。

商品信息在京东官网上的部分网页源码如下图所示:

如何利用Xpath选择器抓取京东网商品信息

狗粮信息在京东官网上的网页源码

仔细观察源码,可以发现我们所需的目标信息是存在<li data-sku=”*****” class=”gl-item”>标签下的,那么接下来我们就像剥洋葱一样,一层一层的去获取我们想要的信息。

通常URL编码的方式是把需要编码的字符转化为%xx的形式,一般来说URL的编码是基于UTF-8的,当然也有的于浏览器平台有关。在Python的urllib库中提供了quote方法,可以实现对URL的字符串进行编码,从而可以进入到对应的网页中去。

如何利用Xpath选择器抓取京东网商品信息

在线复制Xpath表达式

很多小伙伴都觉得Xpath表达式很难写,其实掌握了基本的用法也就不难了。在线复制Xpath表达式如上图所示,可以很方便的复制Xpath表达式。但是通过该方法得到的Xpath表达式放在程序中一般不能用,而且长的没法看。所以Xpath表达式一般还是要自己亲自上手。

直接上代码,利用Xpath去提取目标信息,如商品的名字、链接、图片和价格,具体的代码如下图所示:

如何利用Xpath选择器抓取京东网商品信息

爬虫代码

在这里,小编告诉大家一个Xpath表达式匹配技巧。之前看过好几篇文章,大佬们都推荐Xpath表达式使用嵌套匹配的方式。在本例中,首先定义items,如下所示:

items = selector.xpath('//li[@class="gl-item"]')

之后通过range函数,逐个从网页中进行匹配目标信息,而不是直接通过复制Xpath表达式的方式一步到位。希望小伙伴们以后都可以少入这个坑~~

最后得到的效果图如下所示:

如何利用Xpath选择器抓取京东网商品信息

最终效果图

新鲜的狗粮再一次出炉咯~~~

小伙伴们,有没有发现利用Xpath来获取目标信息比正则表达式要简单一些呢?

 

—————— End ——————

往期精彩文章推荐:

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

在公众号后台回复下列关键词可以免费获取相应的学习资料:

Python、网络爬虫 、书籍、数据分析、机器学习、数据结构、

大数据、服务器、Spark、Redis、C++、C、php、

mysql、java、Android、面试题、课堂、其他

如何利用BeautifulSoup选择器抓取京东网商品信息

昨天小编利用Python正则表达式爬取了京东网商品信息,看过代码的小伙伴们基本上都坐不住了,辣么多的规则和辣么长的代码,悲伤辣么大,实在是受不鸟了。不过小伙伴们不用担心,今天小编利用美丽的汤来为大家演示一下如何实现京东商品信息的精准匹配~~

HTML文件其实就是由一组尖括号构成的标签组织起来的,每一对尖括号形式一个标签,标签之间存在上下关系,形成标签树;因此可以说Beautiful Soup库是解析、遍历、维护“标签树”的功能库。

如何利用BeautifulSoup选择器抓取京东网商品信息

首先进入京东网,输入自己想要查询的商品,向服务器发送网页请求。在这里小编仍以关键词“狗粮”作为搜索对象,之后得到后面这一串网址:
https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其中参数的意思就是我们输入的keyword,在本例中该参数代表“狗粮”,具体详情可以参考Python大神用正则表达式教你搞定京东商品信息。所以,只要输入keyword这个参数之后,将其进行编码,就可以获取到目标URL。之后请求网页,得到响应,尔后利用bs4选择器进行下一步的数据采集。

商品信息在京东官网上的部分网页源码如下图所示:

如何利用BeautifulSoup选择器抓取京东网商品信息

仔细观察源码,可以发现我们所需的目标信息是存在<a>标签下的,那么接下来我们就像剥洋葱一样,一层一层的去获取我们想要的信息。 直接上代码,如下图所示:

通常URL编码的方式是把需要编码的字符转化为%xx的形式,一般来说URL的编码是基于UTF-8的,当然也有的于浏览器平台有关。在Python的urllib库中提供了quote方法,可以实现对URL的字符串进行编码,从而可以进入到对应的网页中去。 之后利用美丽的汤去提取目标信息,如商品的名字、链接、图片和价格,具体的代码如下图所示:

在本例中,有个地方需要注意,部分图片的链接是空值,所以在提取的时候需要考虑到这个问题。其解决方法有两个,其一是如果使用img[‘src’]会有报错产生,因为匹配不到对应值;但是使用get[‘src’]就不会报错,如果没有匹配到,它会自动返回None。

此外也可以利用try+except进行异常处理,如果匹配不到就pass,小伙伴们可以自行测试一下,这个代码测速过程在上图中也有提及哈。使用get方法获取信息,是bs4中的一个小技巧,希望小伙伴们都可以学以致用噢~ 最后得到的效果图如下所示:

新鲜的狗粮出炉咯~ 小伙伴们,有没有发现利用BeautifulSoup来获取目标信息比正则表达式要简单一些呢?

 

—————— End ——————

往期精彩文章推荐:

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

在公众号后台回复下列关键词可以免费获取相应的学习资料:

Python、网络爬虫 、书籍、数据分析、机器学习、数据结构、

大数据、服务器、Spark、Redis、C++、C、php、

mysql、java、Android、面试题、课堂、其他

 

利用Python正则表达式抓取京东网商品信息

京东(JD.com)是中国最大的自营式电商企业,2015年第一季度在中国自营式B2C电商市场的占有率为56.3%。如此庞大的一个电商网站,上面的商品信息是海量的,小编今天就带小伙伴利用正则表达式,并且基于输入的关键词来实现主题爬虫。

首先进去京东网,输入自己想要查询的商品,小编在这里以关键词“狗粮”作为搜索对象,之后得到后面这一串网址:
https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其实参数%E7%8B%97%E7%B2%AE解码之后就是“狗粮”的意思。那么非常明显,只要输入keyword这个参数之后,将其进行编码,就可以获取到我们的目标网址了,请求网页,得到响应,尔后利用选择器便可以进行下一步的精准采集了。

在京东网上,狗粮信息在京东官网上的网页源码如下图所示:

利用Python正则表达式抓取京东网商品信息

狗粮信息在京东官网上的网页源码

话不多说,直接撸代码,如下图所示。小编用的是py3,也建议大家以后多用py3版本。通常URL编码的方式是把需要编码的字符转化为%xx的形式,一般来说URL的编码是基于UTF-8的,当然也有的于浏览器平台有关。在Python的urllib库中提供了quote方法,可以实现对URL的字符串进行编码,从而可以进入到对应的网页中去。

正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是一种可以用于模式匹配和替换的强有力的工具。找到目标网页之后,调用urllib中的urlopen函数打开网页并获取源码,之后利用正则表达式实现对目标信息的精准采集。

利用Python正则表达式抓取京东网商品信息

利用正则表达式实现对目标信息的精准采集

正则表达式写在这个程序中确实蛮复杂的,也占据了多行,但是主要用到的正则表达式是[\w\W]+?和[\s\S]+?。

[\s\S]或者[\w\W]是完全通配的意思,\s是指空白,包括空格、换行、tab缩进等所有的空白,而\S刚好相反。这样一正一反下来,就表示所有的字符,完全的,一字不漏的。另外,[]这个符号,表示在它里面包含的单个字符不限顺序的出现,比如下面的正则:[ace]/*,这表示,只要出现a/c/e这三个任意的字母,都会被匹配。

此外,[\s]表示,只要出现空白就匹配;[\S]表示,非空白就匹配。那么它们的组合,表示所有的都匹配,与它相对应的,有[\w\W]等,意义完全相同。其实,[\s\S] 和 [\w\W]这样的用法,比”.”所匹配的还要多,因为”.”是不会匹配换行的,所有出现有换行匹配的时候,人们就习惯 使用[\s\S]或者[\w\W]这样的完全通配模式。

最后得到的输出效果图如下所示:

利用Python正则表达式抓取京东网商品信息

输出效果图

这样小伙伴们就可以获取到狗粮的商品信息了,当然,小编在这里只是抛砖引玉,只匹配了四个信息,而且只是做了个单页的获取。需要更多数据的小伙伴们可以自行去更改正则表达式和设置多页,达到你想要的效果。下篇文章小编将利用美丽的汤BeautifulSoup来进行匹配目标数据,实现目标信息的精准获取。

最后给大家简单介绍一下正则表达式。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。

正则表达式对于初学者确实晦涩难懂,不过慢慢学习还是可以掌握的,并不一定要完全记下来,但是你要知道什么时候需要什么参数,能做到顺利使用它就可以了。

—————— End ——————

往期精彩文章推荐:

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

在公众号后台回复下列关键词可以免费获取相应的学习资料:

Python、网络爬虫 、书籍、数据分析、机器学习、数据结构、

大数据、服务器、Spark、Redis、C++、C、php、

mysql、java、Android、面试题、课堂、其他

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

前几天小编给大家分享了数据可视化分析,在文尾提及了网易云音乐歌词爬取,今天小编给大家分享网易云音乐歌词爬取方法。 本文的总体思路如下: 找到正确的URL,获取源码; 利用bs4解析源码,获取歌曲名和歌曲ID; 调用网易云歌曲API,获取歌词; 将歌词写入文件,并存入本地。 本文的目的是获取网易云音乐的歌词,并将歌词存入到本地文件。整体的效果图如下所示:

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

本文以民谣歌神赵雷为数据采集对象,专门采集他的歌曲歌词,其他歌手的歌词采集方式可以类推,下图展示的是《成都》歌词。

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

一般来说,网页上显示的URL就可以写在程序中,运行程序之后就可以采集到我们想要的网页源码。But在网易云音乐网站中,这条路行不通,因为网页中的URL是个假URL,真实的URL中是没有/#号的。废话不多说,直接上代码。

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

本文利用requests、bs4、json和re模块来采集网易云音乐歌词,记得在程序中添加headers和反盗链referer以模拟浏览器,防止被网站拒绝访问。这里的get_html方法专门用于获取源码,通常我们也要做异常处理,未雨绸缪。获取到网页源码之后,分析源码,发现歌曲的名字和ID藏的很深,纵里寻她千百度,发现她在源码的294行,藏在下图的标签下,如下图所示:

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

接下来我们利用美丽的汤来获取目标信息,直接上代码,如下图:

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

此处要注意获取ID的时候需要对link进行切片处理,得到的数字便是歌曲的ID;另外,歌曲名是通过get_text()方法获取到的,最后利用zip函数将歌曲名和ID一一对应并进行返回。得到ID之后便可以进入到内页获取歌词了,但是URL还是不给力,如下图:

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

虽然我们可以明白的看到网页上的白纸黑字呈现的歌词信息,但是我们在该URL下却无法获取到歌词信息。小编通过抓包,找到了歌词的URL,发现其是POST请求还有一大堆看不懂的data,总之这个URL是不能为我们效力。那该点解呢?莫慌,小编找到了网易云音乐的API,只要把歌曲的ID放在API链接上便可以获取到歌词了,代码如下:

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

在API中歌词信息是以json格式加载的,所以需要利用json将其进行序列化解析出来,并配合正则表达式进行清洗歌词,如果不用正则表达式进行清洗的话,得到原始的数据如下所示(此处以赵雷的歌曲《成都》为例):

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

很明显歌词前面有歌词呈现的时间,对于我们来说其属于杂质信息,因此需要利用正则表达式进行匹配。诚然,正则表达式并不是唯一的方法,小伙伴们也可以采取切片的方式或者其他方法进行数据清洗,在此就不赘述了。得到歌词之后便将其写入到文件中去,并存入到本地文件中,代码如下:

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

现在只要我们运行程序,输入歌手的ID之后,程序将自动把该歌手的所唱歌曲的歌词抓取下来,并存到本地中。如本例中赵雷的ID是6731,输入数字6731之后,赵雷的歌词将会被抓取到,如下图所示:

一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

之后我们就可以在脚本程序的同一目录下找到生成的歌词文本,歌词就被顺利的爬取下来了。相信大家对网易云歌词爬取已经有了一定的认识了,不过easier said than down,小编建议大家动手亲自敲一下代码,在实践中你会学的更快,学的更多的。这篇文章教会大家如何采集网易云歌词,那网易云歌曲如何采集呢?且听小编下回分解~~~

——————- End ——————-

往期精彩文章推荐:

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

在公众号后台回复下列关键词可以免费获取相应的学习资料:

Python、网络爬虫 、书籍、数据分析、机器学习、数据结构、

大数据、服务器、Spark、Redis、C++、C、php、

mysql、java、Android、面试题、课堂、其他

Python大佬分析了15万歌词,告诉你民谣歌手们到底在唱什么

前几天小编写了两篇利用Python采集网易云歌词采集网易云音乐歌曲文章,相信小伙伴们经过实践之后都能够顺利的采集到自己想要听的歌曲。下面的歌词是小编去年11月份采集的民谣歌词,经过统计,歌词量达到将近15万。

用Python采集的民谣歌词

心血来潮,想利用Python来分析一下民谣歌手们到底在唱些什么鬼~~

首先运用jieba库进行分词和词频统计分析,得到歌词中的词频统计,部分主要代码如下图所示:

运用jieba库进行分词和词频统计分析

得到的词频后将其导入到Excel表格中,详情如下图:

民谣歌手词频统计表

利用词云将其进行可视化,得到效果图如下:

歌词词云可视化
歌词词云可视化

从词频中,我们可以感受到民谣歌手们时常提及青春,感叹韶华易逝,青春小鸟一去不回来。他们会觉得很孤单,但是并不沉浸在忧伤之中,而是心中向往着远方,对整个世界充满希望、对未来充满阳光。嘿嘿,民谣歌手们在传递正能量咧~~

之后通过词频统计分析歌手们喜欢的季节,得到的数据统计如下图所示:

民谣歌手们喜欢的季节

由饼图可以看出,民谣歌手们比较喜欢春天~~等待下一个春天回来;飘在异乡的雪 覆盖了春天~~

继续分析民谣歌手的歌词,探索民谣歌手们到底喜欢活在哪一天,详情如下图所示:

民谣歌手们到底喜欢活在哪一天

由柱状图可以看出,民谣歌手们更加喜欢明天,对于明天充满希望。大家都说我拿青春赌明天,看来是有道理滴。爱人你可感到明天已经来临;却不知明天的船舶停靠在何方~~

通过城市地点词频统计,探索民谣歌手们最喜欢哪个城市,得到的统计图如下所示:

民谣歌手们最喜欢哪个城市

可以很明显的看出,北京直接开挂,完胜其他城市。在南方城市中,民谣歌手念叨最多的还是成都,和我在成都的街头走一走,喔喔喔~~~当然,南京、上海、昆明也有提及,但是分量不大。

那么民谣歌手们到底喜欢南方还是北方呢?看看下图你就知道了。

南方or北方?

可以看出来,民谣歌手们还是蛮喜欢南方菇凉的。北方的村庄住着一个南方的姑娘;南方姑娘 你是否习惯北方的秋凉;南方姑娘 你是否喜欢北方人的直爽~~~赵雷歌曲《南方姑娘》送给你^_^

最后利用SnowNLP对每一位民谣歌手的歌词进行情感分析,得到的统计图如下所示:

民谣歌手的情感分析

可以看的出来,许巍的歌曲中表达的情绪是比较嗨的,充满正能量;而赵雷、逃跑计划等人唱的歌曲所表达的情绪比较平缓,像是在不慌不忙的给你讲故事;尧十三等人的歌曲相对忧伤一些。不过话说回来,民谣歌手们的情绪总的来说还是比较开心的。

最后小编总结一下民谣歌手到底在唱什么,唱的是寂寞么?当然不是~~~

通过15万民谣歌词的分析,我们可以得出民谣歌手们时常感叹青春,觉得韶华易逝。通常呢,他们会觉得很孤单,但是并不沉浸在忧伤之中,而是心中向往着远方,对整个世界充满希望、对未来充满阳光。他们喜欢春天和冬天,喜欢生活在明天,对未来充满着信心和希望。他们喜欢北方的城市,尤其是首都北京,但同时呢,他们又惦记着南方姑娘,最希望和女票去的南方城市是成都、南京、香港和昆明~~

——————- End ——————-

往期精彩文章推荐:

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

在公众号后台回复下列关键词可以免费获取相应的学习资料:

Python、网络爬虫 、书籍、数据分析、机器学习、数据结构、

大数据、服务器、Spark、Redis、C++、C、php、

mysql、java、Android、面试题、课堂、其他

手把手教你用Python网络爬虫获取网易云音乐歌曲

前天给大家分享了用Python网络爬虫爬取了网易云歌词,在文尾说要爬取网易云歌曲,今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地。

跟着小编运行过代码的筒子们将网易云歌词抓取下来已经不再话下了,在抓取歌词的时候在函数中传入了歌手ID和歌曲名两个参数,其实爬取歌曲也是同样的道理,也需要传入这两个参数,只不过网易云歌曲的URL一般人找不到。不过也不要慌,有小编在,分分钟扫除您的烦恼。

网易云歌曲一般会有一个外链,专门用于下载音乐音频的,以赵雷的歌曲《成都》为例,《成都》的外链URL是:

http://music.163.com/song/media/outer/url?id=436514312.mp3,其中436514312这个数字是《成都》这首歌曲的ID。也就是说只要我们将歌曲的ID传入到外链URL中,就可以找到该歌曲的下载地址,之后通过Python标准库进行下载即可。

话不多说,直接上代码:

手把手教你用Python网络爬虫获取网易云音乐歌曲

程序设计好之后,运行程序,输入歌手的ID,以赵雷为例,其ID是6731,输入这个ID数值之后,程序将自动将赵雷的专辑歌曲及其对应的歌词下载到本地,运行的效果图如下所示:

手把手教你用Python网络爬虫获取网易云音乐歌曲

程序运行完毕之后,歌词和歌曲都down到本地了,如下图:

手把手教你用Python网络爬虫获取网易云音乐歌曲
手把手教你用Python网络爬虫获取网易云音乐歌曲

之后在本地便可以听到优雅的歌曲了,如《成都》,见下图:

手把手教你用Python网络爬虫获取网易云音乐歌曲

大家以后要听歌曲的话只要运行这个爬虫程序,输入你喜欢的那位歌手的ID,稍等片刻,就可以听到你想要的歌曲啦10万首歌曲就不在话下啦,只要你愿意,随便多少首都行

最后小编祝福大家身体健康,工作顺利~~欢迎大家转载噢

今天这个程序完整的代码截图可以参考小编前天分享的那篇基于Python网易云音乐歌词爬取文章,结合今天的代码,就可以如愿以偿啦~~~

——————- End ——————-

往期精彩文章推荐:

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

在公众号后台回复下列关键词可以免费获取相应的学习资料:

Python、网络爬虫 、书籍、数据分析、机器学习、数据结构、

大数据、服务器、Spark、Redis、C++、C、php、

mysql、java、Android、面试题、课堂、其他

小白如何学习Python网络爬虫?

小白如何学习Python网络爬虫?

人生苦短,我用Python

Python网络爬虫上手很快,能够尽早入门,可是想精通确实是需求些时间,需求达到爬虫工程师的级别更是需求煞费苦心了,接下来共享的学习道路是针对小白或许学习Python网络爬虫不久的同伴们。

学习网络爬虫能够分三步走,如果你是大神,请直接绕走,蟹蟹~~

第一步,刚触摸Python网络爬虫的时分肯定是先过一遍Python最基本的常识,比如说:变量、字符串、列表、字典、元组、操控句子、语法等,把根底打牢,这样在做案例的时分不会觉得模糊。根底常识能够参阅廖雪峰的教程,很根底,也非常易懂,关于新手能够很快接纳。此外,你还需求了解一些网络恳求的基本原理、网页结构(如HTML、XML)等。

第二步,看视频或许找一本专业的网络爬虫书本(如用Python写网络爬虫),跟着他人的爬虫代码学,跟着他人的代码敲,弄懂每一行代码,留意务必要着手亲身实践,这样才会学的更快,懂的更多。许多时分我们好大喜功,觉得自己这个会,然后不愿意着手,其实真实比及我们着手的时分便漏洞百出了,最好每天都坚持敲代码,找点感觉。开发东西主张选Python3,由于到2020年Python2就中止保护了,日后Python3肯定是干流。IDE能够选择pycharm、sublime或jupyter等,小编引荐运用pychram,由于它非常友爱,有些相似java中的eclipse,非常智能。浏览器方面,学会运用 Chrome 或许 FireFox 浏览器去检查元素,学会运用进行抓包。此外,在该阶段,也需求了解干流的爬虫东西和库,如urllib、requests、re、bs4、xpath、json等,一些常用的爬虫结构如scrapy等是必需求把握的,这个结构仍是蛮简略的,可能初学者觉得它很难抵挡,可是当抓取的数据量非常大的时分,你就发现她的美~~

第三步,你现已具有了爬虫思想了,是时分自己着手,锦衣玉食了,你能够独立设计爬虫体系,多找一些网站做操练。静态网页和动态网页的抓取战略和办法需求把握,了解JS加载的网页,了解selenium+PhantomJS模仿浏览器,知道json格局的数据该怎样处理。网页如果是POST恳求,你应该知道要传入data参数,而且这种网页一般是动态加载的,需求把握抓包办法。如果想进步爬虫功率,就得考虑是运用多线程,多进程仍是协程,仍是分布式操作。

小白沿着这三步走就现已很好了,其实网络爬虫的道路远不止这些,当你学完这些,你会发现一山还有一山高。之后你能够会碰到爬虫结构的运用、数据库、涉及到大规模爬虫,还需求了解分布式的概念、音讯行列、增量式爬取、常用的数据结构和算法、缓存,乃至还包括机器学习、数据发掘和剖析的使用。

希望小白们尽早入门,一起为学习Python奋斗!

——————- End ——————-

往期精彩文章推荐:

看完本文有收获?请转发分享给更多的人

Python爬虫与数据挖掘

入群请在微信后台回复【入群】

在公众号后台回复下列关键词可以免费获取相应的学习资料:

Python、网络爬虫 、书籍、数据分析、机器学习、数据结构、

大数据、服务器、Spark、Redis、C++、C、php、

mysql、java、Android、面试题、课堂、其他