自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卤蛋实验室

前端技术、爬虫、数据可视化

  • 博客(38)
  • 收藏
  • 关注

原创 Web Scraper——轻量数据爬取利器

日常学习工作中,我们多多少少都会遇到一些数据爬取的需求,比如说写论文时要收集相关课题下的论文列表,运营活动时收集用户评价,竞品分析时收集友商数据。当我们着手准备收集数据时,面对低效的复制黏贴工作,一般都会萌生一个想法:我要是会爬虫就好了,分分钟就把数据爬取下来了。可是当我们搜索相关教程时,往往会被高昂的学习成本所劝退。拿现在最通用的 python 爬虫来说,对于小白来说往往要跨过下面几座大山:学习一门编程语言:python学习网页的基础构成——HTML 标签和 CSS 选择器,有时候还要了解一些.

2020-05-23 15:33:47 1477 1

原创 一文搞懂前端兼容问题

对于大部分开发者来说,版本兼容是一件存在感很低的事情,因为它在绝大部分情况下都是一行配置,在一些前端工具链(例如 Babel、CoreJS,Autoprefixer 等工具)的帮助下适配到目标浏览器,只会在一些大的 break change 事件(例如 Vue3 必须在支持 Proxy 的现代浏览器下才能运行)下才会关注这件不起眼的事情。但当你稍微研究一下的时候,才会发现这块儿内容知识非常杂,因为版本兼容的相关知识没有那么多内在逻辑性,很多细碎的知识点散落在在各个商业公司的博弈和版本变更中。...

2022-08-11 10:00:00 613 1

原创 看了 web.dev 的 631 篇博客,我总结了这些内容

https://web.dev/ 是一个 Google 官方推出的一个面向 Web 开发者的网站,里面有非常多的教程和最佳实践,非常适合有性能优化诉求的开发者去浏览和学习。

2022-07-08 10:00:00 610

原创 ⚡️ React Native 启动速度优化——JS 篇【全网最全,值得收藏】

如果你喜欢我的文章,希望点赞???? 收藏 ???? 评论 ???? 三连支持一下,谢谢你,这对我真的很重要!前言上一篇文章主要从 Native 的角度分析了 React Native 的初始化流程,并从源码出发,总结了几个 React Native 容器初始化的优化点。本文主要从 JavaScript 入手,总结了一些 JS 侧的优化要点。1.JSEngineHermesHermes 是 FaceBook 2019 年中旬开源的一款 JS 引擎,从 release 记录可以看出,这个是专为

2021-04-16 10:26:00 526

原创 ⚡️ React Native 启动速度优化——Native 篇(内含源码分析)

Web 开发有一个经典问题:「浏览器中从输入 URL 到页面渲染的这个过程中都发生了什么?」据我考据这个问题起码有十年历史了。在日新月异学不动的前端圈子里,这个问题能一直被问,就是因为因为它是个非常好的问题,涉及非常多的知识点,平时做一些性能优化,都可以从这个问题出发,分析性能瓶颈,然后对症下药进行优化。不过今天我们不谈 Web 的性能优化,只是借助刚刚的那个那个经典问题的分析思路,从 React Native 的启动到页面的第一次渲染完成,结合 React Native 的源码和 1.0 的新架构,一

2021-04-09 10:52:03 538

原创 移动端 JS 引擎哪家强?美国硅谷找......

如果你喜欢我的文章,希望点赞???? 收藏 ???? 评论 ???? 三连一下,谢谢你,这对我真的很重要!在一般的移动端开发场景中,每次更新应用功能都是通过 Native 语言开发并通过应用市场版本分发来实现的。但是市场瞬息万变,Native 语言在开发效率上存在一定不足,并且从 APP 版本更新 到 应用市场审核发布 再到 用户下载更新,总会存在一定的时间差,这样就导致新的功能无法及时覆盖全量用户。为了解决这个问题,开发者们一般会在项目里引入一门脚本语言,提速 APP 的研发流程。在移动端应用比较

2021-02-26 10:16:07 712

原创 【十天自制软渲染器】DAY 04:Z-buffering

如果你喜欢我的文章,希望点赞???? 收藏 ???? 评论 ???? 三连一下,谢谢你,这对我真的很重要!在第三天的学习中,我们学会了如何利用重心坐标算法画三角形,并运用三角形绘制算法把人头模型画了出来。虽然最后的渲染结果能看出来这是个脑袋,但是嘴巴处有很明显的穿帮。这一天我们就学习一下,如何利用 Z-buffering(深度缓冲)来解决层叠问题。本文源码 ????:toyRenderer-day04-Z-buffering1.画家算法在正式讲解 Z-buffering 问题之前,我们先来了

2021-02-09 10:14:00 324

原创 【十天自制软渲染器】DAY 03:画一个三角形(向量叉乘算法 & 重心坐标算法)

前面两天画了点和线,今天我们来画一个最简单也是最强大的面——三角形。本文主要讲解三角形绘制算法的推导和思路(只涉及到一点点的向量知识),最后会给出代码实现,大家放心的看下去就好。本文源码 ????:toyRenderer-day3-draw-triangle1.如何画一个三角形?在正式开始这一小节前,我们先想一下如何利用上一节的画线算法绘制一个实心的三角形。假设现在平面内有三个不共线的点组成一个三角形,我们可以利用上一节的直线算法轻易的连接三角形的三条边,这时候我们会生成一个空心的、封闭的三

2021-02-02 14:45:41 544

原创 如何隐藏你的热更新 bundle 文件?

如果你喜欢我的文章,希望点赞???? 收藏 ???? 在看 ???? 三连支持一下!!!谢谢你,这对我真的很重要!前段时间我们公司的一个大佬从一些渠道得知了一些小道消息,某国民级 APP 因为 Apple App Store 审核人员检测出 React Native 热更新的内容,被拒审了三个月。我们的热更新平台和出事的 APP 原理相似,所以也存在着拒审危险。那么我们就要想一些办法,隐藏热更新 bundle,不被审核人员发现。其实这个问题蛮复杂的,因为它不单纯是一个技术问题,还涉及到各种复杂的商业利

2021-01-29 10:27:33 413 1

原创 【十天自制软渲染器】DAY 02:画一条直线(DDA 算法 & Bresenham’s 算法)

推荐关注公众号「卤蛋实验室」或直接阅读博客原文,更新更及时,阅读体验更佳写文不易,恳求各位观众老爷 点赞 ????,收藏 ????,评论 ???? 三连支持一下!!!谢谢你,这对我真的很重要!第一天我们搭建了 C++ 的运行环境并画了一个点,根据 点 → 线 → 面 的顺序,今天我们讲讲如何画一条直线。本文主要讲解直线绘制算法的推导和思路(莫担心,只涉及到一点点的中学数学知识),最后会给出代码实现,大家放心的看下去就好。1.DDA 直线算法1.1 简单实现我们先来回顾一下中学的几何知识,如

2021-01-19 09:11:12 301

原创 【十天自制软渲染器】DAY 01:图形学学习建议与环境搭建

推荐直接阅读博客原文,更新更及时,阅读体验更佳如果你觉得我写的不错,就给我个点个赞吧????!谢谢你,这对我真的很重要!「十天自制软渲染器」这个标题我承认标题党了.在对图形学一无所知的情况下想十天自制一个软渲染器,就好似一节课没上过却试图一个晚上看完《30 天精通 C++》然后第二天早上八点考试得满分一样,我承认世界上有这种天才,但很可惜我不是。就像前文所说,本系列造的轮子都是站在巨人的肩膀上完成的,需要对相关知识有一定的了解和学习,如果你是一个图形学大牛,这种软渲染器肯定是不屑于做的;如果你刚刚进

2021-01-14 10:23:01 669

原创 【深入解析】跨端框架的核心技术到底是什么?

本文是我在学习多个平台 UI 框架后的一些感触,受精力和技术水平所限,文中定有不足之处,请各位大佬多多指教如果你觉得我的文章对你有帮助,在收藏的过程中,一定要记得点赞和点在看哦,谢谢你,这对我真的很重要????!一、前端三板斧正式讨论「跨端开发」这个概念前,我们可以先思考一个问题:对大部分前端工作来说,前端主要干些啥?我个人认为,无论环境怎么变,前端基本上就是做三件事情:fetch data(数据获取)manage state(状态管理)render page(页面渲染)没了。也许

2020-11-26 09:18:02 1271

原创 【程序中的数学】利用德摩根定律简化布尔运算

今天说说德摩根定律在编程中的实践,题目看的很吓人,其实只要有一点点的高中数学知识就能看懂,而且这部分知识掌握后可以很快的运用到项目中,投资收益比非常高。如果你觉得我的文章对你有帮助,在收藏的过程中,一定要记得点赞哦,谢谢你,这对我真的很重要????!一、缘起:一段让人头大的逻辑判断这两天在重构一些老项目,重构过程中遇到了一个让人非常头大的逻辑判断:if(!((A && B) || C)) { // do something} else { // do something

2020-10-20 08:38:05 1942 1

原创 【答疑解惑】为什么你的 Charles 会抓包失败?

作为一名 Web 开发工程师,天天都会和网络打交道。Charles 作为一款网络抓包工具,几乎成了 Web 开发的标配。本文是我深度使用 Charles 后总结而成,不同于其它介绍 Charles 的文章,这篇文章不会详细介绍 Charles 的各个功能(例如 remote 和 rewrite),而是专注于分析一个问题:什么情况下 Charles 会抓包失败?为了解决这个问题,我会从 Charles 的原理分析,并且结合 Android/iOS 的官方政策,一一分析 Charles 抓包中的那些失效问.

2020-09-23 08:44:45 2738 1

原创 【独家】React Native 版本升级指南

前言React Native 作为一款跨端框架,有一个最让人头疼的问题,那就是版本更新。尤其是遇到大版本更新,JavaScript、iOS 和 Android 三端的配置构建文件都有非常大的变动,有时候三者的配置文件又互相耦合在一起,往往牵一发而动全身。本文假定 React Native 升级的主导者是前端同学,比较熟悉 javaScript 为主的一套前端构建流程。如果有条件,升级时强烈建议拉上 iOS 和 Android 开发,对于一些琐碎的升级细节,当面沟通远比搜索.

2020-08-26 09:19:11 1116

原创 15 张精美动图全面讲解 CORS

前言:本文翻译自 Lydia Hallie 小姐姐写的 ✋???????? CS Visualized: CORS,她用了大量的动图去解释 CORS 这个概念,国内还没有人翻译本文,所以我在原文的理解上翻译了本文并修改了一些错误,希望能帮到大家。觉得翻译的不错一定要点赞哦,谢谢你,这对我真的很重要! ????注:原文的动图均为 keynote 制作前端开发中,我们经常要使用其他站点的数据。前端显示这些数据之前,必须向服务器发出请求以获取该数据。假设我们正在访问 https://api.my

2020-08-03 03:24:15 330

原创 ️ 后羿采集器——最良心的爬虫软件

2020 年如果让我推荐一款大众向的数据采集软件,那一定是后裔采集器了。和我之前推荐的 web scraper 相比,如果说 web scraper 是小而精的瑞士军刀,那后裔采集器就是大而全的重型武器,基本上可以解决所有的数据爬取问题。下面我们就来聊聊,这款软件的优秀之处。一、产品特点1.跨平台后羿采集器是一款桌面应用软件,支持三大操作系统:Linux、Windows 和 Mac,可以直接在官网上免费下载。2.功能强大后羿采集器把采集工作分为两种类型:智能模式和流程图模式。智能模式就是.

2020-07-27 09:13:49 10768 1

原创 HTTP规范中的那些暗坑

HTTP 协议可以说是开发者最熟悉的一个网络协议,「简单易懂」和「易于扩展」两个特点让它成为应用最广泛的应用层协议。虽然有诸多的优点,但是在协议定义时因为诸多的博弈和限制,还是隐藏了不少暗坑,让人一不小心就会陷入其中。本文总结了 HTTP 规范中常见的几个暗坑,希望大家开发中有意识的规避它们,提升开发体验。1.RefererHTTP 标准把 Referrer 写成 Referer(少些了一个 r),可以说是计算机历史上最著名的一个错别字了。Referer 的主要作用是携带当前请求的来源地址,常用.

2020-05-28 11:42:39 389 1

原创 Web Scraper 高级用法——使用 CouchDB 存储数据 | 简易数据分析 18

这是简易数据分析系列的第 18 篇文章。原文链接:https://www.cnblogs.com/web-scraper/p/web-scraper-couchdb.html利用 web scraper 抓取数据的时候,大家一定会遇到一个问题:数据是乱序的。在之前的教程里,我建议大家利用 Excel 等工具对数据二次加工排序,但还是存在部分数据无法排序的情况。其实解决数据乱序的方法也有,那...

2020-04-15 23:02:02 709

原创 Web Scraper 高级用法——利用正则表达式筛选文本信息 | 简易数据分析 17

这是简易数据分析系列的第 17 篇文章。原文首发于博客园:Web Scraper 高级用法——利用正则表达式筛选文本信息学习了这么多课,我想大家已经发现了,web scraper 主要是用来爬取文本信息的。在爬取的过程中,我们经常会遇到一个问题:网页上的数据比较脏,我们只需要里面的一部分信息。比如说要抓取 电影的评价人数,网页中抓到的原始数据是 1926853人评价,但是我们期望只抓取数字...

2020-03-18 11:39:02 1031

原创 Web Scraper 高级用法——抓取属性信息 | 简易数据分析 16

这是简易数据分析系列的第 16 篇文章。文章首发于博客园:web scraper 高级用法——抓取属性信息。今天我们讲一个用的较少的 Web Scraper 功能——抓取属性信息。网页在展示信息的时候,除了我们看到的内容,其实还有很多隐藏的信息。我们拿豆瓣电影250举个例子:电影图片正常显示的时候是这个样子:如果网络异常,图片加载失败,就会显示图片的默认文案,这个文案其实就是这个图片...

2020-03-04 22:31:04 1342

原创 Web Scraper 高级用法——CSS 选择器的使用 | 简易数据分析 15

这是简易数据分析系列的第 15 篇文章。原文首发于博客园:简易数据分析 15 | Web Scraper 高级用法——CSS 选择器的使用年末事情比较忙,很久不更新了,后台一直有读者催更,我看了一些读者给我的私信,发现一些通用的问题,所以单独写篇文章,介绍一些 Web Scraper 的进阶用法。今天我们就来学习一些 CSS 选择器的知识,辅助 Web Scraper 更好的定位要选择的元...

2020-03-04 22:29:44 700

原创 React Native 性能优化指南【全网最全,值得收藏】

原文链接:https://juejin.im/post/5e1676e16fb9a04847095b122020 年谈 React Native,在日新月异的前端圈,可能算比较另类了。文章动笔之前我也犹豫过,但是想到写技术文章又不是赶时髦,啥新潮写啥,所以还是动笔写了这篇 React Native 性能优化的文章。本文谈到的 React Native 性能优化,还没到修改 React Nat...

2020-01-09 10:47:49 1530

原创 Web Scraper 翻页——利用 Link 选择器翻页 | 简易数据分析 14

这是简易数据分析系列的第 14 篇文章。本文首发于博客园:Web Scraper 翻页——利用 Link 选择器翻页今天我们还来聊聊 Web Scraper 翻页的技巧。这次的更新是受一位读者启发的,他当时想用 Web scraper 爬取一个分页器分页的网页,却发现我之前介绍的分页器翻页方法不管用。我研究了一下才发现我漏讲了一种很常见的翻页场景。在 web scraper 翻页——分页器...

2019-11-29 22:05:37 382

原创 简易数据分析 13 | Web Scraper 抓取二级页面

这是简易数据分析系列的第 13 篇文章。本文首发于博客园:简易数据分析 13。不知不觉,web scraper 系列教程我已经写了 10 篇了,这 10 篇内容,基本上覆盖了 Web Scraper 大部分功能。今天的内容算这个系列的最后一篇文章了,下一章节我会开一个新坑,说说如何利用 Excel 对收集到的数据做一些格式化的处理和分析。Web Scraper 教程的全盘总结我放在下一篇文...

2019-10-30 08:06:51 1557 3

原创 简易数据分析 12 | Web Scraper 翻页——抓取分页器翻页的网页

这是简易数据分析系列的第 12 篇文章。本文首发于博客园:简易数据分析 12。前面几篇文章我们介绍了 Web Scraper 应对各种翻页的解决方法,比如说修改网页链接加载数据、点击“更多按钮“加载数据和下拉自动加载数据。今天我们说说一种更常见的翻页类型——分页器。本来想解释一下啥叫分页器,翻了一堆定义觉得很繁琐,大家也不是第一年上网了,看张图就知道了。我找了个功能最全的例子,支持数字页码...

2019-09-20 08:55:06 1298

原创 简易数据分析 11 | Web Scraper 抓取表格数据

这是简易数据分析系列的第 11 篇文章。原文首发于博客园。今天我们讲讲如何抓取网页表格里的数据。首先我们分析一下,网页里的经典表格是怎么构成的。First Name 所在的行比较特殊,是一个表格的表头,表示信息分类2-5 行是表格的主体,展示分类内容经典表格就这些知识点,没了。下面我们写个简单的表格 Web Scraper 爬虫。1.制作 Sitemap我们今天的练手网站是...

2019-09-01 18:20:01 1168

原创 简易数据分析 10 | Web Scraper 翻页——抓取「滚动加载」类型网页

这是简易数据分析系列的第 10 篇文章。原文首发于博客园:简易数据分析 10。**友情提示:**这一篇文章的内容较多,信息量比较大,希望大家学习的时候多看几遍。我们在刷朋友圈刷微博的时候,总会强调一个『刷』字,因为看动态的时候,当把内容拉到屏幕末尾的时候,APP 就会自动加载下一页的数据,从体验上来看,数据会源源不断的加载出来,永远没有尽头。我们今天就是要讲讲,如何利用 Web Scr...

2019-08-14 08:33:18 876

原创 简易数据分析 09 | Web Scraper 自动控制抓取数量 & Web Scraper 父子选择器

这是简易数据分析系列的第 9 篇文章。今天我们说说 Web Scraper 的一些小功能:自动控制 Web Scraper 抓取数量和 Web Scraper 的父子选择器。如何只抓取前 100 条数据?如果跟着上篇教程一步一步做下来,你会发现这个爬虫会一直运作,根本停不下来。网页有 1000 条数据,他就会抓取 1000 条,有 10W 条,就会抓取 10W 条。如果我们的需求很小,只想...

2019-08-07 08:44:46 485

原创 简易数据分析 08 | Web Scraper 翻页——点击「更多按钮」翻页

这是简易数据分析系列的第 8 篇文章。原文首发于博客园:简易数据分析 08。我们在Web Scraper 翻页——控制链接批量抓取数据一文中,介绍了控制网页链接批量抓取数据的办法。但是你在预览一些网站时,会发现随着网页的下拉,你需要点击类似于**「加载更多」**的按钮去获取数据,而网页链接一直没有变化。所以控制链接批量抓去数据的方案失效了,所以我们需要模拟点击**「加载更多」**按钮,去...

2019-08-01 08:27:45 1805

原创 简易数据分析 07 | Web Scraper 抓取多条内容

这是简易数据分析系列的第 7 篇文章。在第 4 篇文章里,我讲解了如何抓取单个网页里的单类信息;在第 5 篇文章里,我讲解了如何抓取多个网页里的单类信息;今天我们要讲的是,如何抓取多个网页里的多类信息。这次的抓取是在简易数据分析 05的基础上进行的,所以我们一开始就解决了抓取多个网页的问题,下面全力解决如何抓取多类信息就可以了。我们在实操前先把逻辑理清:上几篇只抓取了一类元素:电影...

2019-07-24 21:28:59 627

原创 简易数据分析 06 | 如何导入别人已经写好的 Web Scraper 爬虫

这是简易数据分析系列的第 6 篇文章。原文首发于博客园:简易数据分析 06上两期我们学习了如何通过 Web Scraper 批量抓取豆瓣电影 TOP250 的数据,内容都太干了,今天我们说些轻松的,讲讲 Web Scraper 如何导出导入 Sitemap 文件。前面也没有说,SItemap 是个什么东西,其实它就是我们操作 Web Scraper 后生成的爬虫文件,相当于 python ...

2019-07-18 08:09:35 235

原创 简易数据分析 05 | Web Scraper 翻页——控制链接批量抓取数据

这是简易数据分析系列的第 5 篇文章。原文首发于博客园:Web Scraper 翻页——控制链接批量抓取数据上篇文章我们爬取了豆瓣电影 TOP250 前 25 个电影的数据,今天我们就要在原来的 Web Scraper 配置上做一些小改动,让爬虫把 250 条电影数据全部爬取下来。前面我们同时说了,爬虫的本质就是找规律,当初这些程序员设计网页时,肯定会依循一些规则,当我们找到规律时,就可以...

2019-07-09 22:12:48 692

原创 简易数据分析 04 | Web Scraper 初尝--抓取豆瓣高分电影

这是简易数据分析系列的第 4 篇文章。原文首发于博客园:简易数据分析 04。今天我们开始数据抓取的第一课,完成我们的第一个爬虫。因为是刚刚开始,操作我会讲的非常详细,可能会有些啰嗦,希望各位不要嫌弃啊:)有人之前可能学过一些爬虫知识,总觉得这是个复杂的东西,什么 HTTP、HTML、IP 池,在这里我们都不考虑这些东西。一是小的数据量根本不需要考虑,二是这些乱七八糟的东西根本没有说到爬虫的...

2019-07-04 07:58:20 509

原创 简易数据分析 03 | 浏览器中那些不为人知的使用技巧

原文首发于博客园:简易数据分析 03。这是简易数据分析系列的第 3 篇文章。上文我们安装了 Web Scraper 插件,我相信对于大部分人来说还是很简单的,这篇文章我们说些不一样的内容,讲讲浏览器里那些不被大多数人所知的骚操作。作为普通的使用者,大家用浏览器就是查阅信息,浏览网页。但在开发者的眼里,Chrome 浏览器提供了非常强大的开发能力。通过这篇文章的学习,大家可以掌握一些浏览器开...

2019-06-29 19:48:32 219

原创 简易数据分析 02 | Web Scraper 的下载与安装

这是简易数据分析系列的第 2 篇文章。原文首发于博客园:简易数据分析 02。上篇说了数据分析在生活中的重要性,从这篇开始,我们就要进入分析的实战内容了。数据分析数据分析,没有数据怎么分析?所以我们首先要学会采集数据。我调研了很多采集数据的软件,综合评定下来发现最好用的还是 Web Scraper,这是一款 Chrome 浏览器插件。![](https://image-1255652541...

2019-06-29 19:46:30 354

原创 简易数据分析 01 | 为什么我们要学习数据分析?

这是简易数据分析系列的第 1 篇文章。为什么叫简易数据分析?第 1 个原因是本教程面向纯小白用户,不写代码不写公式,迈出数据分析的第一步。第 2 个原因是生活中很多的数据分析场合,都是很轻量的,不需要上 Python 爬虫、高并发架构,机器学习等重武器,一个浏览器再加一个 Excel 就足够了:比如说某门课程论文交稿只有几天了,急需快速爬取数据进行数据分析,这时候临阵磨枪学习 Pyth...

2019-06-29 19:43:16 237

原创 面试必备!webpack 中那些最易混淆的 5 个知识点

文章目录1.webpack 中,`module`,`chunk` 和 `bundle` 的区别是什么?1.1 一句话总结:2.`filename` 和 `chunkFilename` 的区别2.1 filename2.2 chunkFilename2.3 一句话总结:3.`webpackPrefetch`、`webpackPreload` 和 `webpackChunkName` 到底是干什么的?...

2019-05-29 20:21:13 2040 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除