当前位置: 首页 > 编程日记 > 正文

盘一盘 2021 年程序员们喜欢的网站数据

8d65eba8fdf942e23af263e08d711015.gif

作者 | 周萝卜

来源 | 萝卜大杂烩

世界上流量最大的网站有哪些,也许我们都能脱口而出,比如 Google,YouTube,Facebook 还有 PxxnHub 等等,今天我们就通过多个维度来看看,那些叱咤全球的流量网站!

48f7b38a8467154f78e9e3945dbd6802.png

数据获取

首先我们还是先抓取数据,目标网站是如下地址

https://www.visualcapitalist.com/the-50-most-visited-websites-in-the-world/

该页面有如下一个表格,里面罗列的全球流量前50的网站,我们就抓取这个数据

512627c9b8acf9234d5f1f92f79845a5.png

下面进行编码,使用 requests 访问页面,通过 BeautifulSoup 解析网页

import requests
import pandas as pd
from bs4 import BeautifulSoupheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"}res = requests.get("https://www.visualcapitalist.com/the-50-most-visited-websites-in-the-world/", headers=headers)soup = BeautifulSoup(res.text)
tbody = soup.find("table").find("tbody")
tr_list = tbody.find_all("tr")
data_list = []
for tr in tr_list:tds = tr.find_all("td")tmp = []for td in tds:tmp.append(td.text)data_list.append(tmp)
print(data_list)

Output:

[['1', 'Google.com', '92.5B', 'U.S.', 'Search Engines'],['2', 'Youtube.com', '34.6B', 'U.S.', 'TV Movies and Streaming'],['3','Facebook.com','25.5B','U.S.','Social Networks and Online Communities'],['4','Twitter.com','6.6B','U.S.','Social Networks and Online Communities'],['5', 'Wikipedia.org', '6.1B', 'U.S.', 'Dictionaries and Encyclopedias'],['6','Instagram.com','6.1B','U.S.','Social Networks and Online Communities'],....

拿到上述数据之后,我们整理成 DataFrame 形式

df = pd.DataFrame(data_list)
df.rename(columns={0:'Rank',1:'WebSite',2:'Traffic', 3:'Country', 4:'Type'},inplace=True)
df['new_Traffic'] = df['Traffic'].apply(lambda x: x.split("B")[0] if "B" in x else float(x.split("M")[0])/1000)
print(df)

Output:

Rank	WebSite	Traffic	Country	Type	new_Traffic
0	1	Google.com	92.5B	U.S.	Search Engines	92.5
1	2	Youtube.com	34.6B	U.S.	TV Movies and Streaming	34.6
2	3	Facebook.com	25.5B	U.S.	Social Networks and Online Communities	25.5
3	4	Twitter.com	6.6B	U.S.	Social Networks and Online Communities	6.6
4	5	Wikipedia.org	6.1B	U.S.	Dictionaries and Encyclopedias	6.1
5	6	Instagram.com	6.1B	U.S.	Social Networks and Online Communities	6.1
6	7	Baidu.com	5.6B	China	Search Engines	5.6
7	8	Yahoo.com	3.8B	U.S.	News and Media	3.8
8	9	xvideos.com	3.4B	Czech Republic	Adult	3.4
9	10	pornhub.com	3.3B	Canada	Adult	3.3
10	11	Yandex.ru	3.2B	Russia	Search Engines	3.2
11	12	Whatsapp.com	3.1B	U.S.	Social Networks and Online Communities	3.1
12	13	Amazon.com	2.9B	U.S.	Marketplace	2.9
...

接下来我们再转换下格式,保存成csv文件,留着后面使用

web_name = df['WebSite'].values.tolist()
newdf = pd.DataFrame(np.repeat(df.values,24,axis=0))
newdf.columns = df.columns
newdf['date'] = ''
for i, r in newdf.iterrows():print(r['WebSite'])tag = 0ni = 0for j in web_name[::-1]:if r['WebSite'] == j:print(tag)print(ni)r['date'] = d_list[tag:]ni += 1tag += 1
newdf=newdf[['WebSite','Type','new_Traffic', 'date']]
newnew = newdf.rename(columns={'WebSite':'name','Type': 'type', 'new_Traffic':'value'})
newnew.to_csv('newdf.csv', index=0)

90bb9625310cad1a60258a9aa1df6c71.png

可视化分析

首先导入需要的库

from pyecharts.charts import Bar,Map,Line,Page,Scatter,Pie,Polar
from pyecharts import options as opts
from pyecharts.globals import SymbolType,ThemeType
from pyecharts.charts import Grid, Liquid
from pyecharts.commons.utils import JsCode

排名前十榜单

根据流量的大小,获取排名前十的榜单

x_data = df['WebSite'].values.tolist()[:10]
y_data = df['new_Traffic'].values.tolist()[:10]b = (Bar().add_xaxis(x_data).add_yaxis('',y_data).set_global_opts(title_opts = opts.TitleOpts(),yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=30))).set_series_opts(label_opts=opts.LabelOpts(is_show=True,position='right')).reversal_axis()
)
grid = Grid(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE))
grid.add(b, grid_opts=opts.GridOpts(pos_left="20%"))
grid.render_notebook()

fa3e8d29f8bda316bcf70b661596a922.png

可以看出 Google.com 一骑绝尘,是巨无霸的存在,紧随其后的就是全球最大的视频分享网站油管,而我们都熟悉的,呸,是你们都熟悉的P站排在第十,也是个不错的排名哦

排名前二十榜单

再来看看前二十的情况

x_data = df['WebSite'].values.tolist()[10:20]
y_data = df['new_Traffic'].values.tolist()[10:20]b = (Bar().add_xaxis(x_data).add_yaxis('',y_data).set_global_opts(title_opts = opts.TitleOpts(),yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=30))).set_series_opts(label_opts=opts.LabelOpts(is_show=True,position='right')).reversal_axis()
)
grid = Grid(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE))
grid.add(b, grid_opts=opts.GridOpts(pos_left="20%"))
grid.render_notebook()

55ae12af2b17076171c7e004b7054dde.png

前二十相对差距就没有那么大了,Zoom,亚马逊等知名网站都在这个区间

国家排名

下面我们根据网站所属国家进行排名

country_group = df.groupby("Country").count().sort_values(by=["Rank"], ascending=False)
x_data = country_group.index.tolist()[:7]
y_data = country_group["Rank"].values.tolist()[:7]b = (Bar().add_xaxis(x_data).add_yaxis('',y_data).set_global_opts(title_opts = opts.TitleOpts(),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15))).set_series_opts(label_opts=opts.LabelOpts(is_show=True,position='top'))
)
grid = Grid(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE))
grid.add(b, grid_opts=opts.GridOpts(pos_left="20%"))
grid.render_notebook()

ae5adc89af4ac355cfeec5eacfe5aea5.png

漂亮国遥遥领先,作为当今世界第一强国,其领先优势是全方位的,排名2-4位的分别为中国,日本和俄罗斯

散点图视角

c = (Scatter().add_xaxis(x_data).add_yaxis("", y_data).set_global_opts(title_opts=opts.TitleOpts(),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),visualmap_opts=opts.VisualMapOpts(type_="size", max_=30, min_=1),)
)
grid = Grid(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE))
grid.add(c, grid_opts=opts.GridOpts(pos_left="20%"))
grid.render_notebook()

c4fff3b397c07b2658bdb8d23d3346d7.png

网站类型

下面我们来看下不同网站类型的分布情况

type_group = df.groupby("Type").count().sort_values(by=["Rank"], ascending=False)
x_type = type_group.index.tolist()
y_type = type_group["Rank"].values.tolist()test = ['Social Networks and Online Communities','Marketplace','News and Media','Search Engines','Adult','Programming and Developer Software','Email']
c = (Polar().add_schema(angleaxis_opts=opts.AngleAxisOpts(data=x_type[:9], type_="category")).add("", y_type[:9], type_="bar", stack="stack0").set_global_opts(title_opts=opts.TitleOpts(title=""))
)
grid = Grid(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE))
grid.add(c, grid_opts=opts.GridOpts(pos_left="20%"))
grid.render_notebook()

fcb04a3a61979ca34175d47330c52bed.png

可以看到,网站类型最多的就是社交&在线交流类型的网站,比如Facebook,Twitter等,然后以Amazon为首的购物网站也占据了很大一部分

各类型网站所占比例

l1 = (Liquid().add("", [y_type[2]/sum(y_type)], center=["35%", "75%"]).set_global_opts(title_opts=opts.TitleOpts(title=""))
)l2 = Liquid().add("lq",[y_type[0]/sum(y_type)],center=["25%", "26%"],label_opts=opts.LabelOpts(font_size=50,formatter=JsCode("""function (param) {return (Math.floor(param.value * 10000) / 100) + '%';}"""),position="inside",),
)
l3 = (Liquid().add("", [y_type[1]/sum(y_type)], center=["75%", "26%"]).set_global_opts(title_opts=opts.TitleOpts(title=""))
)
l4 = Liquid().add("",[y_type[3]/sum(y_type)],center=["65%", "75%"],label_opts=opts.LabelOpts(font_size=50,formatter=JsCode("""function (param) {return (Math.floor(param.value * 10000) / 100) + '%';}"""),position="inside",is_show=True),
)grid = Grid(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE)).add(l1, grid_opts=opts.GridOpts()).add(l2, grid_opts=opts.GridOpts()).add(l3, grid_opts=opts.GridOpts()).add(l4, grid_opts=opts.GridOpts())
grid.render_notebook()

8b110e0206b99e8f58ee15e5c875969a.gif

ef490d135a1d0289334804f8a3e17105.png

动态排行展示

下面我们通过一个小视频来更加直观看下全球top网站的排名情况

最后再来一张神图,非常惊艳

eca32fa72543c2b6f74cde71105f2957.gif

这张图目测通过 Matplotlib 应该可以实现,咱们就找时间复现一下~

493780d271cda91329afc2d4097be0e8.gif

技术

用python写3D游戏,太赞了

资讯

算力超越iPhone,芯片堪比Mac

技术

31个好用的Python字符串方法

资讯

游戏圈地震级消息,微软收购动视暴雪

1c271cbffb36122c2ecdcbf52569a51d.png

分享

10a59d331a128b58263c588bbf1ed568.png

点收藏

c6c0f403cac915c5f0840ff63efd168c.png

点点赞

52688679b14bf3e46a50bbec455ffcd2.png

点在看

相关文章:

烽火18台系列之十一:刚需中的刚需——网站篡改监控

网站篡改事件近些年来越演越烈,其中包括政府、教育、金融、事业企业单位等。根据国家互联网应急响应中心发布的《2015年中国互联网网络安全报告》中指出,“2015年CNCERT/CC工检测到境内被篡改的网站数量为24550个,其中境内政府网站篡改数量为…

Http与RPC通信协议的比较

OSI网络结构的七层模型 各层的具体描述如下:第七层:应用层 定义了用于在网络中进行通信和数据传输的接口 - 用户程式;提供标准服务,比如虚拟终端、文件以及任务的传输 和处理; 第六层:表示层 掩…

基于 Python 和 OpenCV 构建智能停车系统

作者 | 努比来源 | 小白学视觉当今时代最令人头疼的事情就是找不到停车位,尤其是找20分钟还没有找到停车位。根据复杂性和效率的不同,任何问题都具有一个或多个解决方案。目前智能停车系统的解决方案,主要包括基于深度学习实现,以…

js获取鼠标位置

1.PageX/PageX:鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化2.clientX/clientY:鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始,即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移动 而变化. 可是悲剧的是,PageX只有FF…

Lua保留指定小数位数

默认会四舍五入 比如:%0.2f 会四舍五入后,保留小数点后2位print(string.format("%.1f",0.26)) ---会输出0.3,而不是0.2 Lua保留一位小数 --- nNum 源数字 --- n 小数位数 function Tool. GetPreciseDecimal(nNum, n)if type(nNum)…

htaccess文件用法收集整理

1.时区设置有些时候,当你在PHP里使用date或mktime函数时,由于时区的不同,它会显示出一些很奇怪的信息。下面是解决这个问题的方法之一。就是设置你的服务器的时区。你可以在这里找到所有支持的时区的清单。 1.SetEnv TZ Australia/Melbourne …

手把手教你使用 YOLOV5 训练目标检测模型

作者 | 肆十二来源 | CSDN博客这次要使用YOLOV5来训练一个口罩检测模型,比较契合当下的疫情,并且目标检测涉及到的知识点也比较多。先来看看我们要实现的效果,我们将会通过数据来训练一个口罩检测的模型,并用pyqt5进行封装&#x…

数据仓库数据模型之:极限存储--历史拉链表

摘要: 在数据仓库的数据模型设计过程中,经常会遇到文内所提到的这样的需求。而历史拉链表,既能满足对历史数据的需求,又能很大程度的节省存储资源。在数据仓库的数据模型设计过程中,经常会遇到这样的需求:1. 数据量比较…

super的用法(带了解)

super的用法(带了解) super的用法(带了解)posted on 2018-05-11 21:31 leolaosao 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/leolaosao/p/9026686.html

Posted content type isn't multipart/form-data

版权声明&#xff1a;欢迎转载&#xff0c;请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/48712507 在有文件上传的表单提交过程中&#xff0c;搞不好就会报Posted content type isnt multipart/form-data的错误。 解决办法 <form class"form-…

CSDN 十大技术主题盘点-AI篇

关于2021&#xff0c;我们能看到的技术变化有很多。当云原生向下而生&#xff0c;当分布式数据库席卷而至&#xff0c;当低代码平台扩展了开发的边界&#xff0c;当万物互联蔚然成风……我们看到了太多在2021年形成的变化&#xff0c;但也能看到这些趋势非但没有结束&#xff0…

PHP编程问题集锦

1. Win32下apache2用get方法传递中文参数会出错 test.php?a你好&b你也好传递参数是会导致一个内部错误解决办法:"test.php?a".urlencode(你好)."&b".urlencode(你也好)2. win32下的session不能正常工作 php.ini默认的session.save_path /tmp 这…

jsonp详解

json相信大家都用的多&#xff0c;jsonp我就一直没有机会用到&#xff0c;但也经常看到&#xff0c;只知道是“用来跨域的”&#xff0c;一直不知道具体是个什么东西。今天总算搞明白了。下面一步步来搞清楚jsonp是个什么玩意。 同源策略 首先基于安全的原因&#xff0c;浏览器…

PHP面向对象精华

PHP面向对象精华1 使用extends实现继承以及重载、魔术方法的含义 class B extends A 声明的时候B里可以没有A里的方法 调用的时候$bnew B(); $b->A里的方法(); $b->A里的属性1; $b->B里的方法(); $b->B里的方法(); 如果$anew A(); 可以 $a->A里的方法(); $a->…

springmvc和mybatis整合关键配置

springmvcmybaits的系统架构&#xff1a; 第一步&#xff1a;整合dao层 mybatis和spring整合&#xff0c;通过spring管理mapper接口。 使用mapper的扫描器自动扫描mapper接口在spring中进行注册。 第二步&#xff1a;整合service层 通过spring管理 service接口。 使用配置方式将…

阿里亲制明信片,字节、百度直接发锅……这些公司的新年礼盒越来越会玩~

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍整理 | 王晓曼出品 | 程序人生&#xff08;ID&#xff1a;coder _life&#xff09;每到年末&#xff0c;各大互联网大厂的新年礼盒都会作为…

html中radio、checkbox选中状态研究(静下心来看,静下心来总结)

html中radio、checkbox选中状态研究&#xff08;静下心来看&#xff0c;静下心来总结&#xff09; 一、总结 1、单选框的如果有多个checked 会以最后一个为准 2、js动态添加checked属性&#xff1a;不行&#xff1a;通过 $("[namesex]:eq(1)").attr("checked&q…

新年新气象,100 行 Python 代码制作动态鞭炮

作者 | FrigidWinter来源 | CSDN博客放鞭炮贺新春&#xff0c;在我国有两千多年历史。关于鞭炮的起源&#xff0c;有个有趣的传说。西方山中有焉&#xff0c;长尺余&#xff0c;一足&#xff0c;性不畏人。犯之令人寒热&#xff0c;名曰年惊惮&#xff0c;后人遂象其形&#xf…

php 反射类简介

反射是操纵面向对象范型中元模型的API&#xff0c;其功能十分强大&#xff0c;可帮助我们构建复 杂&#xff0c;可扩展的应用。其用途如&#xff1a;自动加载插件&#xff0c;自动生成文档&#xff0c;甚至可用来扩充 PHP 语言。php 反射api 由若干类组成&#xff0c;可帮助我们…

shell时间

Shell 调用系统时间变量 Linux常用命令获取今天时期&#xff1a;date %Y%m%d 或 date %F 或 $(date %y%m%d) 获取昨天时期&#xff1a;date -d yesterday %Y%m%d 获取前天日期&#xff1a;date -d -2day %Y%m%d 依次类推比如获取10天前的日期&#xff1a;date -d -10day %Y%m%d…

杨老师课堂_Java核心技术下之控制台模拟记事本案例...

预览效果图&#xff1a; 背景介绍&#xff1a; 编写一个模拟记事本的程序通过在控制台输入指令&#xff0c;实现在本地新建文件打开文件和修改文件等功能。 要求在程序中&#xff1a; 用户输入指令1代表“新建文件”&#xff0c;此时可以从控制台获取用户输入的文件内容&#x…

PHP的URL处理

完整URL地址&#xff1a; http://username:passwordhostname/path?argvalue#auchor 协议&#xff1a;http:// 用户名和密码&#xff1a; username:password 以&#xff1a;将两者分隔 主机名&#xff1a;hostname 和/为分隔符 路径&#xff1a; /path 以/开头、包含/符号 参…

UnitOfWork以及其在ABP中的应用

Unit Of Work&#xff08;UoW&#xff09;模式在企业应用架构中被广泛使用&#xff0c;它能够将Domain Model中对象状态的变化收集起来&#xff0c;并在适当的时候在同一数据库连接和事务处理上下文中一次性将对象的变更提交到数据中。 从字面上我们可以我们可以把UnitOfWork叫…

分享3个好用到爆的 Python 模块,点赞收藏

作者 | 俊欣来源 | 关于数据分析与可视化今天给大家介绍3个特别好用的Python模块&#xff0c;知道的人可能不多&#xff0c;但是特别的好用。PsutilPendulumPyfigletPsutilPython当中的Psutil模块是个跨平台库&#xff0c;它能够轻松获取系统运行的进程和系统利用率&#xff0c…

使用XHProf分析PHP性能瓶颈(二)

上一篇文章里&#xff0c;我们介绍了如何基于xhprof扩展来分析PHP性能&#xff0c;并记录到日志里&#xff0c;最后使用xhprof扩展自带的UI在web里展示出来。本篇文章将讲述2个知识点&#xff1a; 使用xhgui代替xhprof的默认UI界面&#xff0c;更便于分析使用tideways扩展替换x…

PHP自动加载类—__autoload()和spl_autoload_register()

test.php <?phpfunction __autoload($class_name) {require_once $class_name . .php;}$obj new j();?> 当前目录下有j.php <?phpclass j{function __construct() {echo "成功加载";} }?> 正常输出&#xff1a;成功加载修改test.php代码<?phpf…

二分 + 模拟 - Carries

Carries Problems Link Mean: 给你n个数&#xff0c;让你计算这n个数两两组合相加的和进位的次数. analyse: 脑洞题. 首先要知道&#xff1a;对于两个数的第k位相加会进位的条件是&#xff1a;a%(10^k)b%(10^k)>10^k. 想到这一点后就简单了&#xff0c;枚举每一位&#…

机器学习的出现,是否意味着“古典科学”的过时?

作者&#xff1a;Laura Spinney译者&#xff1a;刘媛媛原文&#xff1a;Are we witnessing the dawn of post-theory science?让我们回忆一下&#xff0c;Isaac Newton 被一个苹果砸中头部&#xff0c;然后是怎么提出牛顿第二定律——万有引力的&#xff1f;大概过程是这样的&…

MySQL5.6.16二进制源码安装详解及一键安装实现

一、系统环境 1.1操作系统 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [rootlocalhost ~]# uname -rm 10.0-693.el7.x86_64 x86_64 [rootlocalhost ~]# 1.2 安装前环境监测 1.2.1.SELinux和系统防火墙关闭 检查selinux [rootlocalho…

基于 OpenCV 的表格文本内容提取

作者 | 小白来源 | 小白学视觉小伙伴们可能会觉得从图像中提取文本是一件很麻烦的事情&#xff0c;尤其是需要提取大量文本时。PyTesseract是一种光学字符识别&#xff08;OCR&#xff09;&#xff0c;该库提了供文本图像。PyTesseract确实有一定的效果&#xff0c;用PyTessera…