- Python爬虫+数据分析:采集二手房源数据并做可视化
嘘!摸鱼中~
爬虫小案例数据分析小案例python数据分析开发语言学习
目录软件使用:模块使用:代码展示尾语今天我们来分享一个用Python采集二手房源数据信息并做可视化得源码软件使用:python3.8开源免费的(统一3.8)jupyter-->pipinstalljupyternotebookPycharmYYDSpython最好用的编辑器不接受反驳…(也可以使用)模块使用:第三方:requests>>>数据请求模块parsel>>>数据解析模块内置:csv内置模
- ipykernel-4.10.0-py2-none-any.whl文件解析与安装指南
嗹国学长
本文还有配套的精品资源,点击获取简介:PyPI是Python的软件包仓库,本篇将解析一个特定Python包——ipykernel的4.10.0版本。ipykernel是Jupyter项目的核心组件,用于创建和运行交互式Python内核。本指南将介绍其功能、特点和安装过程,并强调其在跨语言支持、异步I/O处理、调试和交互式通信等方面的重要性。用户可通过pip安装该版本,以支持Python2环境中的J
- [解决ERROR]VScode中运行ipynb文件报错缺少ipykernel
又困又爱睡
vscodejupyter
[解决ERROR]VScode中运行ipynb文件报错缺少ipykernel1.在VScode中添加jupyter插件2.建议大家安装python版本目前不要大于3.93.在环境中安装jupyter的包,同时会帮我们下载好ipykernel的包4.如果你不幸发现自己的pyzmq包已经下载且版本是23.3.1或以上版本导致FailedtostarttheKernel5.结语前言:最近帮大家配置ana
- 探索IPykernel:Python交互式计算的核心引擎
解然嫚Keegan
探索IPykernel:Python交互式计算的核心引擎项目地址:https://gitcode.com/gh_mirrors/ip/ipykernel是一个开放源代码项目,它是IPythonNotebook和JupyterNotebook背后的驱动力,使得在Python环境中进行交互式计算成为可能。本文将带你深入了解IPykernel的技术特性、应用及优势,引导你更有效地利用它提升开发效率。项目
- 【环境配置】Jupyter Notebook切换虚拟环境
Bosenya12
jupyteridepython
在JupyterNotebook中是可以切换虚拟环境的,以下是几种常见的方法:方法一:使用nb_conda_kernels扩展(适用于Anaconda环境)安装如果你使用的是Anaconda环境,首先确保你已经安装了nb_conda包。如果没有安装,在AnacondaPrompt中运行以下命令:condainstallnb_conda然后安装nb_conda_kernels:condainstal
- Github 2024-06-05 开源项目日报 Top10
老孙正经胡说
github开源Github趋势分析开源项目PythonGolang
根据GithubTrendings的统计,今日(2024-06-05统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Python项目7JupyterNotebook项目2Rust项目1初学者的生成式人工智能(第2版)创建周期:259天开发语言:JupyterNotebook协议类型:MITLicenseStar数量:25764个Fork数量:16105次关注人数:
- DataWhale 数学建模导论学习笔记(第一章)
ryanYu_127
学习笔记
要点:利用Python作为计算工具帮助解决数学模型。一、前期准备工作1.AnacondaNavigator帮助安装了NumPy所需的功能包。2.通过Jupyter_Lab,可以直接测试代码运行的结果。3.通过vscode可以修改文本并即时看到预览结果,解决一些符号、公式、表格显示不正常的问题。4.这也是我第一次使用CSDN记录自己的学习笔记。二、进入第一章正题解析方法与几何建模:1.前面的向量和矩
- Jupyter notebook中.py与.ipynb文件的import问题
wyr_rise
pythonjupyternotebookimportipynb
在jupyternotebook中,因为其解析文件的方式是基于json的,所以其默认保存的文件格式不是.py而是.ipynb。而.ipynb文件并不能简单的import进.py或者.ipynb文件中,这就为开发带来了极大不便。因为在jupyternotebook中,一定要是在默认的.ipynb下才能有一系列的特性支持,比如自动补全,控制台等待,而.py文件只能通过文本编辑器修改,非常非常不便。因为
- Jupyter Notebook(.ipynb)文件转换为Python(.py)文件的3种方式
weixin_50538161
Python常用pythonjupyter前端
第一种第二种jupyternbconvert--toscriptxxx.ipynb第三种importjsondefconvert_ipynb_to_py(ipynb_file,py_file):withopen(ipynb_file,'r',encoding='utf-8')asf:notebook=json.load(f)withopen(py_file,'w',encoding='utf-8'
- jupyter调用py文件_解决Jupyter notebook中.py与.ipynb文件的import问题
weixin_39519741
jupyter调用py文件
在jupyternotebook中,因为其解析文件的方式是基于json的,所以其默认保存的文件格式不是.py而是.ipynb。而.ipynb文件并不能简单的import进.py或者.ipynb文件中,这就为开发带来了极大不便。因为在jupyternotebook中,一定要是在默认的.ipynb下才能有一系列的特性支持,比如自动补全,控制台等待,而.py文件只能通过文本编辑器修改,非常非常不便。因为
- 纯 Python、Django、FastAPI、Flask、Pyramid、Jupyter、dbt 解析和差异分析
m0_74823292
面试学习路线阿里巴巴pythondjangofastapi
一、纯Python1.1基础概念Python是一种高级、通用、解释型的编程语言,以其简洁易读的语法和丰富的标准库而闻名。“纯Python”在这里指的是不依赖特定的Web框架或数据分析工具,仅使用Python原生的功能和标准库来开发应用程序或执行任务。1.2应用场景简单脚本编写:用于自动化日常任务,如文件处理、数据清洗等。例如,使用os模块处理文件和目录操作,csv模块处理CSV文件。小型命令行工具
- 记录 Anaconda3 下 jupyter notebook修改配置、设定自动代码补全
m0_46629589
pythonjupyter
本文是本人在Anaconda3下jupyternotebook配置修改过程的记录,高手可自动忽视。因为近期数据分析需要分步查看结果,便选择了jupyternotebook,她可以方便地“步进式”运行,便于在分析中发现问题和及时修改。关于jupyternotebook的安装这里不再赘述,因为安装好Anaconda3中已经自带了jupyternotebook,直接点击运行就好。但jupyternote
- Jupyter Notebook添加代码自动提示和补全功能
Try,多训练
#Jupyternotebookjupyter深度学习ide
简介:JupyterNotebook没有代码自动提示和补全功能。该教程将展示如何实现代码自动补全和提示的功能。1.Condaconda-forge提供了用于笔记本扩展和jupyter_nbextensions_configurator的conda包。您可以使用以下方式安装两者condainstall-cconda-forgejupyter_contrib_nbextensions这也会自动安装Ja
- Jupyter Lab 常用插件
pumpkin84514
python相关python
JupyterLab常用插件安装与使用指南JupyterLab支持许多有用的插件,这些插件可以显著增强其功能。以下是一些常用插件的详细安装和使用方法。1.中文语言包安装和使用步骤安装JupyterLab-Translate扩展:pipinstalljupyterlab-translatejupyterlabextensioninstalljupyterlab-translate安装中文语言包:pi
- Python近红外光谱分析与机器学习、深度学习方法融合实践技术
xiao5kou4chang6kai4
人工智能机器学习深度学习python机器学习深度学习近红外光谱
第一章Python入门基础【理论讲解与案例演示实操练习】1、Python环境搭建(下载、安装与版本选择)。2、如何选择Python编辑器?(IDLE、Notepad++、PyCharm、Jupyter…)3、Python基础(数据类型和变量、字符串和编码、list和tuple、条件判断、循环、函数的定义与调用等)4、常见的错误与程序调试5、第三方模块的安装与使用6、文件读写(I/O)7、实操练习第
- Python中各类库的安装——NumPy、Matplotlib、wheel、jupyter notebook
小翔很开心
我在CSDN学pythonpython
在线安装一、安装wheelcmd——>输入:>>>pipinstallwheel即可,等待安装删除操作:输入:>>>pipuninstallwheel即可二、安装NumPycmd——>输入:>>>pipinstallnumpy即可,等待安装删除操作:输入:>>>pipuninstallnumpy即可三、安装Matplotlibcmd——>输入:>>>pipinstallmatplotlib即可,等
- 在Jupyter Notebook中进行大数据分析:集成Apache Spark
范范0825
jupyter数据分析apache
在JupyterNotebook中进行大数据分析:集成ApacheSpark介绍JupyterNotebook是一款广泛使用的数据科学工具,结合ApacheSpark后,能够处理和分析大规模数据。ApacheSpark是一个快速的统一分析引擎,支持大数据处理和分布式计算。本教程将详细介绍如何在JupyterNotebook中集成和使用Spark进行大数据分析。前提条件基本的Python编程知识基本
- 9个python vscode 插件
MetalTrader
vscodeide编辑器
1.Python(Microsoft)vscode并不支持python。但只要你打开任何一个python文件,他都会提示你这个插件。这个插件有很多功能:支持pylint进行格式校验支持python的语法支持pyhton格式化支持JupyterNotebooks、Pytest和单元测试1.PythonPreview一个可视化的python插件,帮助你更好的调试和修复bug,觉得是debug一大利器。
- 二手房数据可分析-python
o不ok!
python开发语言
1、jupyterlab或jupyternotebook环境下项目名称:二手房屋数据可视化一、导包In[51]:importnumpyasnpimportpandasaspdimportmatplotlib.pyplotasplt##忽略警告importwarningswarnings.filterwarnings('ignore')plt.rcParams['font.family']=['Si
- anaconda中安装tensorflow1.15以及Jupyter
hou_hbl
pythontensorflow深度学习
anaconda中安装tensorflow1.15以及Jupyter1.安装TensorFlow1.15tensorflow1.15+cuda10.0+cudnn7.4PackagesNotFoundError:Thefollowingpackagesarenotavailablefromcurrentchannelscondainstalltensorflow-gpu==1.152.安装jupy
- Python Jupyter安装
zm147451753
安装Jupyter:pipinstallJupyter打开notebookJupyternotebook命令行提示错误ModuleNotFoundError:Nomodulenamed'prompt_toolkit'Thesolutionformewastopipuninstallprompt-toolkitandpipinstallprompt-toolkit.Thisuninstalledv1
- python安装jupyter
qq_27390023
pythonjupyter
JupyterNotebook的本质是一个Web应用程序,便于创建和共享程序文档,支持实时代码,数学方程,可视化和markdown。用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。###安装pip##pip是一个安装和管理Python包的工具wgethttps://bootstrap.pypa.io/get-pip.pypython3get-pip.py##创建软连接ln-s/usr/
- 将py文件转为ipynb文件(含批量转换方法)
xyt556_CUMT
BigDatapython
将.py文件转换为.ipynb文件(JupyterNotebook),有几种方法可以实现。下面是使用nbformat库的一个示例。首先,确保你已经安装了nbformat库:pipinstallnbformat单文件转换使用下面的Python脚本将.py文件转换为.ipynb文件:importnbformatasnbfdefpy_to_ipynb(py_file,ipynb_file):withop
- NeuralCF 模型:神经网络协同过滤模型
Lewis@
神经网络人工智能深度学习
实验和完整代码完整代码实现和jupyter运行:https://github.com/Myolive-Lin/RecSys--deep-learning-recommendation-system/tree/main引言NeuralCF模型由新加坡国立大学研究人员于2017年提出,其核心思想在于将传统协同过滤方法与深度学习技术相结合,从而更为有效地捕捉用户与物品之间的复杂交互关系。该模型利用神经网
- 如何在QGIS中安装Python第三方库
朗道十戒
QGISpython开发语言
目录1.在QGIS安装目录下,找到Windows批处理文件OSGeo4W。2.双击运行该批处理文件,然后使用pipinstall命令安装相应的第三方库。3.在QGISPythonConsole控制平台就可以运行anacondajupyternotebook的脚本了。1.在QGIS安装目录下,找到Windows批处理文件OSGeo4W。2.双击运行该批处理文件,然后使用pipinstall命令安装相
- 【Python无敌】在 QGIS 中使用 Python
唐 城
AI-毕业设计全套唐城江湖风雨-Java唐城奇妙之旅-GISpythonlinux开发语言
QGIS中有Python的运行环境,可以很好地执行各种任务。这里的问题是如何在Jupyter中调用QGIS的功能。首先可以肯定的是涉及到GUI的一些任务是无法在Jupyter中访问的,这样可以用的功能主要是地处理工具。按如下方式进行了尝试。原想使用gdal:hillshade,但是始终无法成功(这个运行失败需要重启内核)。后来参考【清华大学对应镜像】QGIS+Conda+jupyter玩转Pyth
- Github 2025-02-01 开源项目月报 Top20
老孙正经胡说
github开源Github趋势分析开源项目PythonGolang
根据GithubTrendings的统计,本月(2025-02-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Python项目8TypeScript项目3JupyterNotebook项目2Rust项目2HTML项目2C++项目1Ruby项目1JavaScript项目1Svelte项目1非开发语言项目1Go项目1Ollama:本地大型语言模型设置与运行创建周
- Jupyter Notebook代码实现了一个简单的全连接神经网络,用于对MNIST手写数字数据集进行分类任务
pk_xz123456
PyTorch入门案例jupyter神经网络分类
{"cells":[{"cell_type":"code","execution_count":7,"metadata":{
- 如何更改Jupyter保存位置、路径
nebula-AI
jupyteridepython
前言Jupyter的文件默认保存在C盘的文档中,而本人习惯将文件都放在其它盘,故将Jupyter的保存位置更改到E盘。配置:Anaconda3(64-bit)中的jupyternotebook具体步骤一:找到配置文件在开始菜单栏中找到Anaconda3文件夹,打开AnacondaPrompt在打开的命令行窗口输入命令jupyternotebook--generate-config按y回车确定配置文
- 清华镜像安装 Jupyter 并一键启动外网访问
时光旅人01号
jupyter网络linuxpython神经网络
1.安装JupyterNotebook由于国内访问官方Python包源较慢,我们将使用清华大学的镜像源加速安装过程。1.1配置清华镜像源首先,在安装Jupyter之前,建议将pip配置为使用清华大学的镜像源,这样可以加速Python包的下载速度。创建或编辑pip配置文件(~/.pip/pip.conf或C:\Users\pip\pip.ini)并添加以下内容:index-url=https://p
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http