• [原创]手把手教你写网络爬虫(3):开源爬虫框架对比

    Posted by : lon.y@qq.com on 2018年4月29日

    介绍 大家好!我们从今天开始学习开源爬虫框架Scrapy,如果你看过《手把手》系列的前两篇,那么今天的内容就非常容易理解了。细心的读者也许会有疑问,为什么不学出身名门的Apache顶级项目Nutch,或者人气飙升的国内大神开发的Pyspider等框架呢?原因很简单,我们来看一下主流爬虫框架在GitHub上的活跃度: Project Language Star Watch Fork Nutch Java 1111 195 808 webmagic Java

    阅读全文...

  • Linux 目录结构:/lib 分析

    Posted by : lon.y@qq.com on 2018年4月29日

    我们在之前的文章中已经分析了其他重要系统目录,比如 /bin、/boot、/dev、 /etc 等。可以根据自己的兴趣进入下列链接了解更多信息。本文中,让我们来看看 /lib 目录都有些什么。 目录结构分析:/bin 文件夹 目录结构分析:/boot 文件夹 目录结构分析:/dev 文件夹 目录结构分析:/etc 文件夹 目录结构分析:/lost+found 文件夹 目录结构分析:/home 文件夹 Linux 中,/lib 文件夹是什么? /lib 文件

    阅读全文...

  • 手把手教你写网络爬虫(1):网易云音乐歌单

    Posted by : lon.y@qq.com on 2018年4月28日

      大家好,《手把手教你写网络爬虫》连载开始了!在笔者的职业生涯中,几乎没有发现像网络爬虫这样的编程实践,可以同时吸引程序员和门外汉的注意。本文由浅入深的把爬虫技术和盘托出,为初学者提供一种轻松的入门方式。请跟随我们一起踏上爬虫学习的打怪升级之路吧! 介绍 什么是爬虫? 先看看百度百科的定义: 简单的说网络爬虫(Web crawler)也叫做网络铲(Web scraper)、网络蜘蛛(Web spider),其行为一般是先“爬”到对应的网页上,再把需要的信

    阅读全文...

  • 手把手教你写网络爬虫(2):迷你爬虫架构

    Posted by : lon.y@qq.com on 2018年4月28日

    介绍 大家好!回顾上一期,我们在介绍了爬虫的基本概念之后,就利用各种工具横冲直撞的完成了一个小爬虫,目的就是猛、糙、快,方便初学者上手,建立信心。对于有一定基础的读者,请不要着急,以后我们会学习主流的开源框架,打造出一个强大专业的爬虫系统!不过在此之前,要继续打好基础,本期我们先介绍爬虫的种类,然后选取最典型的通用网络爬虫,为其设计一个迷你框架。有了自己对框架的思考后,再学习复杂的开源框架就有头绪了。 今天我们会把更多的时间用在思考上,而不是一根筋的cod

    阅读全文...

  • 一行代码蒸发了¥6,447,277,680 人民币!

    Posted by : lon.y@qq.com on 2018年4月28日

    现在进入你还是先行者,最后观望者进场才是韭菜。 背景 今天有人在群里说,Beauty Chain 美蜜 代码里面有bug,已经有人利用该bug获得了 57,896,044,618,658,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000.792003956564819968 个 BEC 那笔操作记录是 0xad89ff16fd1ebe3a0a7cf4ed282302c06626c1af3

    阅读全文...

  • 前端人脸检测指南

    Posted by : lon.y@qq.com on 2018年4月27日

    Shape Detection API 的发布已经有一些时日,其主要的提供的能力是给予前端直接可用的特征检测的接口(包括条形码、人脸、文本检测)。本文将简单的对其进行介绍,对前端进行人脸检测进行普适性的讲解。(本文不讲算法~望轻拍) 1 背景与场景 人脸检测(Face Detection)算是老生常谈的课题了,在诸多行业应用广泛,例如金融、安防、电子商务、智能手机、娱乐图片等行业。其中涉及的技术也在不断的演变,下面简要介绍几种思路: a. 基于特征的人脸检

    阅读全文...

  • 走近 WebAssembly 之调试大法

    Posted by : lon.y@qq.com on 2018年4月27日

    前言 WebAssembly是什么? 下面是来自官方的定义: WebAssembly or wasm is a new portable, size- and load-time-efficient format suitable for compilation to the web. 关键词:”format”,WebAssembly 是一种编码格式,适合编译到web上运行。 事实上,WebAssembly可以看做是对JavaScript的加强,弥补Jav

    阅读全文...

  • 【React进阶系列】从零开始手把手教你实现一个Virtual DOM(二)

    Posted by : lon.y@qq.com on 2018年4月27日

    假如你的项目使用了React,你知道怎么做性能优化吗? 你知道为什么React让你写shouldComponentUpdate或者React.PureComponent吗? 你知道为什么React让你写Immutable Data Structures吗? 你知道为什么React让你在渲染列表时,一定要给每个子项加一个key吗? 你知道为什么React让你在条件渲染时,不写if而写&&操作符或三元操作符吗? 一切的答案都在Virtual D

    阅读全文...

  • 【React进阶系列】从零开始手把手教你实现一个Virtual DOM(一)

    Posted by : lon.y@qq.com on 2018年4月27日

    假如你的项目使用了React,你知道怎么做性能优化吗? 你知道为什么React让你写shouldComponentUpdate或者React.PureComponent吗? 你知道为什么React让你写Immutable Data Structures吗? 你知道为什么React让你在渲染列表时,一定要给每个子项加一个key吗? 你知道为什么React让你在条件渲染时,不写if而写&&操作符或三元操作符吗? 一切的答案都在Virtual D

    阅读全文...

  • 数组的遍历你都会用了,那Promise版本的呢

    Posted by : lon.y@qq.com on 2018年4月27日

    这里指的遍历方法包括:map、reduce、reduceRight、forEach、filter、some、every 因为最近要进行了一些数据汇总,node版本已经是8.11.1了,所以直接写了个async/await的脚本。 但是在对数组进行一些遍历操作时,发现有些遍历方法对Promise的反馈并不是我们想要的结果。 当然,有些严格来讲并不能算是遍历,比如说some,every这些的。 但确实,这些都会根据我们数组的元素来进行多次的调用传入的回调。 这

    阅读全文...