在之前的一篇文章中,我讲到如何爬取必胜客官网中全国各大城市餐厅的信息。
虽然餐厅数据信息被抓取下来,但是数据一直在硬盘中“躺尸”。
不曾记得,自己已经第 n 次这么做了。
说到这里,要追溯到自己的大学时光。
自己从大学开始就接触 Python,当时是自己的好奇心很强烈。
好奇为什么 Python 不需要浏览器就能抓取网站数据。
内心感叹到,这简直是太妙了。
自己为了体验这种抓取数据的乐趣,所以写了很多的爬虫程序。
随着自己知识面地拓展,自己了解到数据分析这领域。
自己从而才知道爬取到的数据,原来背后还隐藏的一些信息。
自己也是在学习这方面的相关知识。
这篇文章算是数据分析的处女稿,主要内容是从数据中提取出必胜客餐厅的一些信息。
1.环境搭建百度前端技术部开源一个基于 Javascript 的数据可视化图表库。
其名字为 ECharts。
它算是前端数据可视化的利器,能提供直观,生动,可交互,可个性化定制的数据可视化图表。
国内有个大神突发奇想,这么好用的库如果能和 Python 结合起来就好了。
于是乎,pyecharts 库就应运而生。
因此,pyecharts 的作用是用于生成 ...
Python爬虫入门
未读在《论语》中,孔子提倡“学而不思则罔,思而不学则殆”的学习方法。
我们再往深层面挖掘,“思”究竟是在思考什么?
个人理解是思考并总结出一些共性的东西,即“套路”。
有套路了,我们学习或工作会更加有效率。
当我们爬取不同的网站是,每个网站页面的实现方式各不相同,我们需要对每个网站都进行分析。
那是否有一些通用的分析方法?
我分享下自己爬取分析的“套路”。在某个网站上,分析页面以及抓取数据,我用得最多的工具是 Chrome 开发者工具。
Chrome 开发者工具是一套内置于 Google Chrome 中的 Web 开发和调试工具,可用来对网站进行迭代、调试和分析。
因为国内很多浏览器内核都是基于 Chrome 内核,所以国产浏览器也带有这个功能。
例如:UC 浏览器、QQ 浏览器、360 浏览器等。
接下来,我们来看看 Chrome 开发者工具一些比较牛逼的功能。
1.元素面板通过元素(Element)面板,我们能查看到想抓取页面渲染内容所在的标签、使用什么 CSS 属性(例如:class=”middle”)等内容。
例如我想要抓取我知乎主页中的动态标题,在网页页面所在处上右 ...
说到数据分析,我们会很容易联想到 Python。
因为我们可以拿 Python 对已有的数据做数据分析。
那什么是数据分析?
数据分析指用适当的统计分析方法对收集来的大量数据进行分析,提取有价值的信息。
在实用中,数据分析可帮助人们作出判断,以便采取适当行动。
“啤酒与尿布”的故事就是最典型的数据分析案例。
“啤酒”和“尿布”这两个商品看上去没有关联性。
而沃尔玛将其摆放在一起进行销售、并获得了很好的销售收益。
原因在于沃尔玛对购物篮分析,研究出“啤酒与尿布”之间存在一定关联性。
这就是数据分析的意义。
再例如通过数据分析出北京的空气质量的走势;
分析近 10 年来 NBA 球队战绩和夺冠率之间的关系等等。
说到这里,你也许有疑问。
我没有数据,怎么做数据分析?
别急,我推荐几个免费的数据源网站。
1.awesome-public-datasets这是一个 GitHub 仓库,其收集的数据所在领域比较广泛,收录政府、金融、计算机网络、软件、体育、气候天气等30个领域的数据。
这些数据集的质量都是比较高,大部分都是免费且能直接下载到的数据。
Github 仓库地址
2.FiveT ...
Python爬虫实战
未读当我刚接触 Python 时,我已经被 Python 深深所吸引。
Python 吸引我的地方不仅仅能用其编写网络爬虫,而且能用于数据分析。
我能将大量的数据中以图形化方式呈现出来,更加直观的解读数据。
数据分析的前提是有数据可分析。
如果没有数据怎么办?
一是可以去一些数据网站下载相关的数据,不过数据内容可能不是自己想要的。
二是自己爬取一些网站数据。
今天,我就爬取全国各地所有的必胜客餐厅信息,以便后续做数据分析。
1.爬取目标我们要爬取的目标是必胜客中国。打开必胜客中国首页,进入“餐厅查询”页面。
我们要爬取的数据内容有城市、餐厅名字、餐厅地址以及餐厅联系电话。
因为我看到页面中有地图,所以页面一定有餐厅地址的经纬度。
因此,餐厅的经纬度也是我们需要爬取的数据。
至于全国有必胜客餐厅的城市列表,我们可以通过页面的“切换城市”获取。
2.分析目标页面在编写爬虫程序之前,我都是先对页面进行简单分析,然后指定爬取思路。而且对页面结构进行分析往往会有一些意想不到的收获。
我们使用浏览器的开发者工具对页面结构进行简单分析。
我们在 StoreList 页面中能找到我们所需的数据。
...
Python编程
未读无论在 Windows 系统中还是 Linux 系统中,都存在着隐藏文件以及隐藏文件夹。
隐藏文件夹一般是系统关键性目录,例如 Windows 系统中的 C 盘中的 Boot 文件夹、Windows 文件夹等。
在 Linux 系统中,一些系统配置文件或软件配置文件会被隐藏起来,如:系统环境变量配置文件 .profile。
有些时候,我们必须通过文件路径来遍历整个目录,然后找到隐藏文件。
本文的主要内容是给大家分享 Python 三种遍历文件的方法。
1.简单暴力法-递归假设在 E 盘中,有个名为“Python”的文件夹;
该文件夹中也有两个文件夹,分别是“A”和“B”;
另外,在“A”文件夹中还有一个 “results.txt” 的文本文件。
因此,“Python”文件夹的文件结构如下:
1234Python|--A| |--results.txt|--B
我们可以从上述看出,一个文件夹其实是一个树型的数据结构。
遍历树的最简单、最暴力的办法就是递归。
因此,遍历“Python”的文件夹的代码可以这么写。
123456789101112131415# -*- coding: U ...
苔痕絮语
未读对于英雄联盟(俗称 LOL 或撸阿撸)游戏玩家来说,今天无疑是值得庆祝的一天。
IG (全称是 Invictus Gaming)零封对手 FNC,豪取我们盼望了 8 年的世界冠军。
看完比赛,我内心一直激动不已,只想说一句。
这支队伍确确实实是牛逼! 因为一开始它不被看好,队员都是东拼西凑的。
上单是一个没人要的上单,打野是借过来的打野,中单是付赠品,直播出道的下路,还有一个双排来的辅助。
他们依然能克服各种客观因素,在赛场上打出自己的风采。
拿我最喜欢的队员 theshy 来说。
第一把,theshy 来一手“千里走单骑”,强行开团,团队打出一波“2 换 5”,为第一盘奠定胜局。
第二把的刀妹更是秀,中路塔下花式补刀;然后在下波团战,theshy 化身“铁头娃”千里追击对手到敌方下路二塔,然后为小兵为踏板,强顶防御塔斩获双杀;最后一把团战,theshy 更是走单骑,秀一波一打五的操作,还全身而退。
由于前两把打出气势,theshy 第三把更加势不可挡。他拿出一手剑魔,人挡杀人,好像在他的眼中就没有防御塔这说法。
现在的我,已经不玩英雄联盟了。
但是自己还是会关注游戏比赛。
或许这 ...
Python编程
未读GitHub ,这个被广大网友戏称为全球最大的程序员同性交友网站。
在程序员的圈子中,可以说无人不知,无人不晓。因为这个网站托管着一些开源项目。
全球知名的大公司如谷歌,微软,腾讯,阿里巴巴等也会在 Github 上开源一些项目。
可以说 Github 上有很多优秀的项目。
作为一名程序员,在成长过程中往往离不开阅读别人的优秀代码。
猴哥每周都会定期去逛逛 GitHub 网站,暮色一些优秀的仓库。然后利用业余时间去学习消化。
自己今天看到一个非常奇葩但十分实用的 Python 库,顺便分享给大家。
这个库就是 The Fuck。
相信很多人看到 fuck 这个单词,很容易会联想到骂人的话。
其实不然,这个单词在外国有很多种意思。它可以当做语气词来用,表示非常的意思。
比如你刚好要出门,突然就下起暴雨。
这个可以用 the fucking weathe 宣泄自己的不满,而这短语表示的是非常糟糕的天气, 该死的天气。
fuck 还有很多层意思,感兴趣的东西可以自行搜索下。
在学习和工作中,我们会经常在终端上执行各种命令行。
如果输入的命令行错误,我们虽然很气,但是还是默默地再输入一次命令 ...
Python爬虫入门
未读Scrapy 爬虫框架的出现,确实能让我们更加专注于数据抓取。
同时,我们借助 Scrapy 框架来爬取整个站点数据也显得更加容易。
虽然 Scarpy 负责 url 调度、网络请求、页面数据下载等工作,但是它的扩展性很高,其中就支持自定义中间件(Middleware)。
本文主要讲解中间件(Middleware)的用法。
1.什么是中间件中间件的运用比较广泛,如果直接从定义的角度去理解中间件会有点乱,我以分布式系统为例子进行说明。
在上篇文章,我讲到目前后台服务架构基本都是往分布式发展。其实分布式系统也算是一个中间件。
那什么是分布式系统?
分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。
我们从下图中可得知,分布式系统是介于操作系统和用户应用之间的软件。
那么不妨我们进一步拓展下思维去理解中间件。可知,中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。
2.中间件在 Scrapy 框架中的作用我们先通过一张图了解下 Scrapy 架构。
我们可以看到 Scra ...
计算机网络
未读上篇文章讲了一些高并发相关的知识,相信大家对高并发有些简单的认识。
说到高并发,往往离不开分布式系统。
人们经常将两者拿来一起讨论,因为高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一。
可以这么说,目前应用商城上很多社交应用,网络游戏的后台服务都是分布式服务。
那具体什么催生出今天的分布式系统呢?文章的主要内容是讲讲大型网站的服务架构演变。
1.初始阶段的网站架构在互联网展露出萌芽的网络时代,网站基本都是小型网站。
网站的访客也不是很多,通常会将应用程序、数据库、文件等所有资源都在一台服务器上。
这里为 Java Web 服务为例。网站开发者可以使用 Tomcat 等 Web 容器直接运行 JSP 程序,然后将数据存储到数据库,文件直接存放到服务器的磁盘中。
就像这样子:
2.应用服务和数据服务分离随着网站业务的发展和用户量的增加,一台服务器就无法再满足需求了。
大量用户访问导致访问速度越来越慢,而逐渐增加的数据也会导致存储空间不足。
这时需要将 Web 应用和数据分离,分别将存放到不同的服务器:应用服务器、文件服务器和数据库服务器。
这样 ...
“高并发”对后台开发同学来说,既熟悉又陌生。
熟悉是因为面试和工作经常会提及它。
陌生的原由是服务器因高并发导致出现各位问题的情况少之又少。
同时,想收获这方面的经验也是”摸着石头过河”, 需要大量学习理论知识,再去探索。
如果是客户端开发的同学,字典中是没有“高并发”这个名词。
这验证一句老话,”隔行如隔山”。
客户端开发,特别是手机应用开发,更多地是考虑如何优化应用的性能,降低 App 的卡顿率等。
本文是一篇科普文,分享自己近来学到的知识。
1.什么是高并发?由于分布式系统的问世,高并发(High Concurrency)通常是指通过设计保证系统能够同时并行处理很多请求。
通俗来讲,高并发是指在同一个时间点,有很多用户同时的访问同一 API 接口或者 Url 地址。
它经常会发生在有大活跃用户量,用户高聚集的业务场景中。
其实,高并发也离我们的生活并不遥远。
例如大学学校的选课系统,一到选课的时候,一大批学生同时选课,导致系统出现“不良反应”;
再如淘宝的 618 和 双 11 的购物活动;遇到节假日,12306 上演的“抢票大战”。
另外,DDos 攻击也能算高并发的场景。
...