Go语言中文网 为您找到相关结果 97

Python爬虫与Web开发常用库汇总 学python培训

Python爬虫和Web开发均是与网页相关的知识技能,无论是自己搭建的网站还是爬虫爬去别人的网站,都离不开相应的Python库,以下是常用的Python爬虫与Web开发库。 **1.爬虫库** beautifulsoup4、urllib2、lxml和requests是学习Python爬虫必备的库,必须要掌握,当然有的同学说爬网页不是也可以用正则表达式吗,确实可以但是会很不方便,因为bs4和lxml都有便捷的接口,一般我们都是和正则结合使用,如果对速度有要求的话,建议用lmxp,它比bs4 速度要快很多。 **2.Scrapy** 爬虫的世界里面有没有懒人专用的框架,当然有啦,scrapy就是其中比较有名的,可以快速,高层次的web抓取网页,并从web站点的页面中提取结...阅读全文

Go 语言的 Web 服务框架Gear-go

Gear 是 Go 语言下的一个轻量级、可组合、高性能的 Web 服务框架。由 [Teambition](https://www.teambition.com/) 开发,用于开发 SOA 服务层。其设计参考了 Go 生态下现有的近十款 Web 框架和 Node.js 生态的 [koa](https://github.com/koajs/koa)、[Toa](https://github.com/toajs/toa) 等框架。 **Demo*...阅读全文

开源项目 2017-02-07 03:17:26 teambition

Apache的Mesos和Google的Kubernetes 有什么区别?

Apache的Mesos和Google的Kubernetes 有什么区别?本文来自StackOverFlow上的一个问题,主要讨论Mesos和Kubernetes的区别,相信我们很多人也有同意的疑问。 Kubernetes的开发者Craig回答了这个问题,同时masi也做了概述,不一定对,供读者参考。Kubernetes主要针对容器集群,而 Mesos适用于任何的框架和应用,所以Kubernetes可以运行于Mesos上。Kubernetes是一个开源项目,它把谷歌的集群管理工具引入到虚拟机和裸机场景中。它可以完美运行在现代的操作系统环境(比如CoreOS 和Red Hat Atomic),并提供可以被你管控的轻量级的计算节点。Kubernetes使用Golang开发,具有轻量化、模块化、便...阅读全文

Python爬虫之处理异常 python进阶

每个程序都不可避免地要进行异常处理,爬虫也不例外,假如不进行异常处理,可能导致爬虫程序直接崩掉。以下是网络爬虫出现的异常种类。 **URLError** 通常,URLError在没有网络连接(没有路由到特定服务器),或者服务器不存在的情况下产生。 **HTTPError** 首先我们要明白服务器上每一个HTTP 应答对象response都包含一个数字“状态码”,该状态码表示HTTP协议所返回的响应的状态,这就是HTTPError。比如当产生“404 Not Found”的时候,便表示“没有找到对应页面”,可能是输错了URL地址,也可能IP被该网站屏蔽了,这时便要使用代理IP进行爬取数据。 **两者关系** 两者是父类与子类的关系,即HTTPError是U...阅读全文

新手求助 为什么不能加载包 我只是想做一个小爬虫 代码没有语法错误

"github.com/PuerkitoBio/goquery" func GetJokes() { doc,err:=goquery.NewDocument("http://www.qiushibaike.com") if err!=nil{ log.Fatal(err) } doc.Find(".content").Each(func(i int,s *goquery.Selection){ fmt.Println(s.Text()) }) } func main(){ fmt.Println("hello world") GetJokes() } can't load package: C:\Go\src\testapp\ma...阅读全文

golang练手小项目系列(2)-并发爬虫

本系列整理了10个工作量和难度适中的Golang小项目,适合已经掌握Go语法的工程师进一步熟练语法和常用库的用法。问题描述:实现一个网络爬虫,以输入的URL为起点,使用广度优先顺序访问页面。要点:实现对多个页面的并发访问,同时访问的页面数由参数 -concurrency 指定,默认为 20。使用 -depth 指定访问的页面深度,默认为 3。注意已经访问过的页面不要重复访问。扩展:将访问到的页面写入到本地以创建目标网站的本地镜像,注意,只有指定域名下的页面需要采集,写入本地的页面里的元素的href的值需要被修改为指向镜像页面,而不是原始页面。实现import ( "bytes" "flag" "fmt" "golang.org/x/net/html" "io" "log" "net/h...阅读全文

博文 2019-06-29 01:32:42 李说的对

python爬虫笔记:开始前的准备

前言 好久不见,Python基础系列完结也有段时间了,希望帮到了大家。 从今天开始我将开始更新一个新的系列:Python爬虫学习笔记。 如你所见,本系列并不是复杂完备的教程,主要还是和大家一起分享我在学习Python爬虫的一些想法以及知识总结。 如果你已经看完了我之前的Python基础系列文章,对Python的基本语法有了一定的概念,那么可能我接下来要开始写的东西可能会对你熟练运用Python有所帮助。 Python爬虫基础知识 1. 爬虫的基本概念 爬虫是一类用于信息搜集的程序,主要用于在一个或多个网页中爬取数据并进行保存、分类、分析等操作,目前最大的爬虫应该是各类搜索引擎,搜索引擎的实现原理简单来说就是他们部署了很多24小时不停扫描公网网站信息的大型爬虫程序,这些程序将爬取到的数据分类整...阅读全文

博文 2020-03-21 18:32:47 pr1s0n

日志索引工具 LogZoom

LogZoom 是一个使用 Go 语言开发的轻量级、兼容 Lumberjack 的日志索引工具,支持 Lumberjack v2 协议。 ### 输入 * Filebeat (Lumberjack V2 Protocol) * Redis Message Queue ### 输出 * Redis Message Queue * TCP Streaming * WebSocket Streaming * Elasticsearch * S3 ![LogZoom Basic Diagram](http://static.oschina.net/uploads/img/201604/09151404_mhoK.png) ![LogZoom High Availability ...阅读全文

开源项目 2016-04-08 16:00:00 packetzoom

on the go way (一)服务器并发

服务器并发的方式有很多种 1.通过多进程或者多线程的方式,现在这种模式基本上已经不用 2.epoll和IOCP回调的方式,不符合人们的习惯 3.使用协程(轻量级线程,创建、销毁的代价很小),协程在逻辑上上顺序执行 其中属于erlang和golang在协程并发方面做的比较好 package mainimport ( "fmt")func getResult(data []int, res chan int) { var sum int sum = 0 for _, v := range data { sum += v } res <- sum}func main() { var res = make(chan int) var data = []int{1, 2, 3, 4, 5, 6, 7,...阅读全文

博文 2016-03-22 11:00:06 OneDream

一个基于golang的爬虫电影站

# Go Movies > 一个基于golang的爬虫电影站,效果站: [https://go-movies.hezhizheng.com/](https://go-movies.hezhizheng.com/) > Github: [https://github.com/hezhizheng/go-movies](https://github.com/hezhizheng/go-movies) ![img](https://cdn.learnku.com/uploads/images/201912/05/6843/gQa6CgVZ7G.png!large) ## 使用安装 ``` # 下载 git clone https://github.com/hezhizheng/go-movies ...阅读全文

博文 2019-12-05 18:40:07 hezhizheng

用Python写爬虫就很low ? 你赞同嘛 ?

之前换了份工作,不再是单纯的Web开发了,要学习的东西真的挺多的。入职的第1天,就让我入手写个爬虫,只是这个爬虫没有采集几个亿数据量的业务场景。于是,整理了下需求,简单的设计了下方案就草草开始了。小B是我大学时候的舍友,那天这哥们约我吃饭,想看下能否顺带介绍几个妹子。酒过三巡,不胜酒力,于是便聊起了最近的工作。当他知晓我竟然在写爬虫,便起了怜悯之心,觉得我怀才不遇。仿佛写爬虫是件很低级很low的技术活。在他那家公司,招进来的实习生就多多少少会点爬虫,什么nodejs、golang,哪个不是爬虫的好手。没想到我毕业多年,竟然沦落到做实习生的工作,可悲可泣。接着建议我转到Java阵营,如果到他公司去,多多少少也能混个组长的职位。搞得自己只能一番苦笑。不知道从何时起,程序员的世界流行起了鄙视链这玩...阅读全文

博文 2019-10-14 15:33:17 aside section ._1OhGeD

golang写一个简单的爬虫

package main import( "fmt" "io/ioutil" "net/http" ) func gethtml(url string) (r *http.Response, e error){ resp,err := http.Get(url) if err != nil { fmt.Print("error") } return resp,err } func main(){ resp, _ :=gethtml("http://www.baidu.com") defer resp.Body.Close() fmt.Println(resp.StatusCode) if resp.StatusCode==http.StatusOK{ body,err :=ioutil.Re...阅读全文

博文 2018-06-07 15:30:01 c-x-a

d-FTP:基于NKN的高速文件传输应用

NKN客户端支持免费且以去中心化方式进行的端到端数据传输。在NKN之前,如果发送方(例如移动应用程序)想要将某些数据发送到接收方,则接收方需要可被公网访问的地址和端口,这对于一般的个人应用是不切实际的, 又或者需要发送和接收双方必须同时连接到同一个集中式服务器/平台(比如微信),这样也会引入额外的成本(比如构建集中化服务器及支付数据转发费用)和潜在的安全漏洞(比如用户数据暴露给了中心化服务器或第三方服务, 又或者集中化服务器的故障将导致整个系统瘫痪)。但现在使用NKN数据传输服务,得益于NKN公共区块链网络平台, 发送方和接收方可以在任何网络条件下保持数据的私密性,并且不需要集中式服务器或平台。数据将以去中心化的方式进行路由和传递,端到端加密且免费。NKN客户端使用非常相对简单的协议(类似于...阅读全文

博文 2019-10-04 10:32:46 aside section ._1OhGeD

Go语言初尝

对于语言设计之争, 唯一需要牢记的一句话是: 如果把 C 变成 C++, 那么 C 就消失了。 Go 是一个轻量级的简洁的支持并发的语言, 可以用于探索性个人项目, 这是我想学这门语言的主要原因。 对于有一定编程经验的人来说, 学习一种新语言的方式是, 先概览下语言特性, 然后编写一个中等规模的程序, 尽可能地运用到大部分重要特性。 下面的程序用于计算一个目录下所有文件或目录的大小。 package main import ( "fmt" "time" "os" "log" ) type ShortFileInfo struct { fileName string size int64 } func (fileInfo *ShortFileInfo) Desc() string { retu...阅读全文

博文 2015-06-17 23:01:40 shuqin1984

golang语言爬虫代理代码示例

packagemainimport("net/url""net/http""bytes""fmt""io/ioutil""math/rand""time""strconv")constProxyServer="t.16yun.cn:31111"typeProxyAuthstruct{UsernamestringPasswordstring}func(pProxyAuth)ProxyClient()http.Client{ifp.Username!=nilandp.Password!=nil{proxyURL,_:=url.Parse("http://"+p.Username+":"+p.Password+"@"+ProxyServer)}else{proxyURL,_:=url.Parse(...阅读全文

博文 2019-06-20 18:32:39 Laical

Golang爬虫

http.Get出现403错误 原因:http.Get访问url没有携带user-agent 解决: client := &http.Client{} req, err := http.NewRequest("GET", url, nil) if err != nil { log.Printf("Fetcher error: %v", err) } req.Header.Set("User-Agent", `你的user-agent`) resp, err := client.Do(req) if err != nil { log.Printf("Fetcher error: %v", err) } defer resp.Body.Close(...阅读全文

博文 2018-08-11 09:34:59 php_studyer

GoLang - 并发版爬虫

文链接 并发版爬虫架构 go_spider.png 将爬虫分为两部分: 一、队列调度器:提供下载请求给Process 二、Process:包括下载请求、解析下载的内容、返回新请求列表给队列调度器、输出下载内容。 具体实现: 在主线程中使用一个队列调度器来储存待访问的请求,若队列调度器为空并且没有正在运行的Process线程,则认为爬虫结束。 主线程控制Process线程并发的数量,执行处理在队列调度器中得到的请求。下载请求的内容,交由页面处理器处理,下载失败则重新添加该链接到队列调度器中。 判断页面处理器返回的请求链接是否访问过,若未访问则加入到队列调度器。将解析得到的内容交由输出线程处理。 爬虫引擎 package spider import ( "downloader" "github....阅读全文

博文 2019-05-13 03:34:46 Coc0

go语言学习一

golang语言特性:1、天然并发a.从语言层面支持并发,非常简单。b.goroute,轻量级线程,创建成千上万个goroute成为可能。c.基于CSP(Communication Sequential Process 通讯序列进程)模型实现。 CSP:每个goroute之间通过管道(channel,类似linux/unix中的pipe)进行通讯,每个goroute都是独立的,是可调度的执行单位,比线程要轻量级,即协程...阅读全文

博文 2020-05-03 02:33:11 archivelog

分布式爬虫对新站的协助

为了保障搜索引擎优化的质量一般在搭建新站的时候,前期会对内容一点点的进行填充,但是到了后期填充量会变得越来越大,所消耗的时间和精力也会逐步的增加,因此很多站长在做新的网站的时候首选分布式爬虫抓取信息进行填充,来保障网站定期更新量。分布式爬虫,可以大体理解为集群爬虫,如果有蜘蛛抓取任务,可以试用多台机器同时运行,很大的提升了工作效率。但是分布式爬虫并不是没有缺陷,也就是说效率提升的越快,那么网站触发反爬虫的机会也就越大。为了保障分布式爬虫的顺利使用,建议站长可以使用代理IP,使用代理IP一定要保障http代理IP的资源充足和http代理ip的上网安全和高匿性...阅读全文

博文 2019-02-27 16:39:39 xiniuxiaoniu

爬虫管理平台Crawlab v0.4.3发布(界面上点几下就可安装pip或npm依赖)

前言 Crawlab 是一款受人欢迎的分布式通用爬虫管理平台,由 Crawlab 开发组 开发和维护。自去年 3 月份上线以来,Crawlab 因为极其强大的灵活性、简单精美的操作界面以及健壮而稳定稳定的功能表现,不断受到爬虫工程师和开发者的喜爱和好评,如今已经有了近 4k Github 标星和超过 8k Docker 下载。在最近的一次调研中,超过三分之一的参与调查者都表示已经将 Crawlab 应用于了生产环境。 对 Crawlab 还不了解的同学,可以参考以下相关文章或文档: Github Repo Crawlab 文档 Crawlab Demo 爬虫管理平台Crawlab v0.4.2发布(文件管理) 爬虫管理平台Crawlab v0.4.1发布(可配置爬虫) 爬虫平台Crawlab...阅读全文

博文 2020-01-07 16:32:45 MarvinZhang

Golang原生爬虫 简单爬虫实现 不依赖第三方包库 方便理解技术原理 (二)

上一篇回顾:Golang原生爬虫 简单爬虫实现 不依赖第三方包库 方便理解技术原理 (一) 本篇原文首发:Golang原生爬虫 简单爬虫实现 不依赖第三方包库 方便理解技术原理 (二)程序首次执行成功后,我们已经成功获取了源页面所提供的链接地址。下面我们自然要做的就是通过计时器来爬抓链接列表里的地址。​​下一步就是要通过地址列表里的地址逐一爬抓,去掉已经爬抓过的练级,并记录新的有效链接到地址列表里。再看一下我们的main函数:func main() { if checkFile("./data/", "url.txt").Size() == 0 { fistStart() main() } else { Timer() } } 上面的firstStart函数(首次执行爬抓)已经执行过了,那就...阅读全文

博文 2018-05-16 20:30:19 Master-Kevin

Golang原生爬虫 简单爬虫实现 不依赖第三方包库 方便理解技术原理 (二)

上一篇回顾:Golang原生爬虫 简单爬虫实现 不依赖第三方包库 方便理解技术原理 (一) 本篇原文首发:Golang原生爬虫 简单爬虫实现 不依赖第三方包库 方便理解技术原理 (二) 程序首次执行成功后,我们已经成功获取了源页面所提供的链接地址。下面我们自然要做的就是通过计时器来爬抓链接列表里的地址。 下一步就是要通过地址列表里的地址逐一爬抓,去掉已经爬抓过的练级,并记录新的有效链接到地址列表里。 再看一下我们的main函数: func main() { if checkFile("./data/", "url.txt").Size() == 0 { fistStart() main() } else { Timer() } } 上面的firstStart函数(首次执行爬抓)已经执行过了,...阅读全文

博文 2018-05-16 21:33:05 Maser_Y

网络爬虫框架开发笔记

网络爬虫框架开发笔记 1、网络爬虫与框架 1.1. 网络爬虫 首先,我们得明白网络爬虫是个什么玩意,它主要就是模仿终端用户,对网页进行爬取和分析,根据使用者的意愿从爬取下载的网页中提取出相关链接、筛选出可用的内容(词条),并对这些词条作存储、分析、统计等操作。 1.2. 网络爬虫框架 既然我们要做一个网络爬虫的框架,我们就得来了解网络爬虫框架的功用,请看下面流程: 输入(首个网络地址请求)-》网页下载器-》分析器-》条目处理管道-》输出 根据上面的爬取流程分析,我们得出了以下几个核心关键词: 1.2.1. 网页下载器 下载与给定网络地址相对应的网页内容。因为,我们做的是框架,因此对于用户的输入请求,我们会尽可能的预留出的定制接口,让使用者可以根据自己的需求,参照接口自定义自己的“请求”组装方...阅读全文

博文 2019-01-17 17:35:02 yongfutian

Go 爬虫之 colly 从入门到不放弃指南

最近发现知乎上感兴趣的问题越来越少,于是准备聚合下其他平台技术问答,比如 segmentfault、stackoverflow 等。完成这个工作,肯定是离不开爬虫的。我就顺便抽时间研究了 Go 的一款爬虫框架 colly。概要介绍colly 是 Go 实现的比较有名的一款爬虫框架,而且 Go 在高并发和分布式场景的优势也正是爬虫技术所需要的。它的主要特点是轻量、快速,设计非常优雅,并且分布式的支持也非常简单,非常易于扩展。如何学习爬虫最有名的框架应该就是 Python 的 scrapy,很多人最早接触的爬虫框架就是它,我也不例外。它的文档非常齐全,扩展组件丰富。当我们要设计一款爬虫框架时,常会参考它的设计。之前看到一些文章,Go 中也有类似 scrapy 的实现。相比而言,colly 的学习...阅读全文

博文 2019-08-04 19:59:13 波罗学​

golang爬虫程序添加代理代码示例

golang¶packagemainimport("net/url""net/http""bytes""fmt""io/ioutil""math/rand""time""strconv")constProxyServer="t.16yun.cn:31111"typeProxyAuthstruct{UsernamestringPasswordstring}func(pProxyAuth)ProxyClient()http.Client{ifp.Username!=nilandp.Password!=nil{proxyURL,_:=url.Parse("http://"+p.Username+":"+p.Password+"@"+ProxyServer)}else{proxyURL,_:=url...阅读全文

博文 2019-06-13 20:32:39 yiniuyun

各语言简单爬虫

各语言简单爬虫 Python 简单爬虫 import requests, re if __name__ == "__main__": r = requests.get('http://docs.python-requests.org/zh_CN/latest/user/quickstart.html') r.encoding = "UTF-8" print(r.text) # 用于打印页面内容 # 正则搜索 .表示任意字符*表示任意个数,group(第一个括号) search = re.search('href="#">(.*)

    ', r.text) print(search.group(1)) golang简单爬虫 package main import ( "fmt" "i...阅读全文

博文 2019-08-05 02:32:38 林万程

爬虫管理平台 Crawlab v0.4.7 发布(界面上配置 Scrapy + Git 同步)

前言 本次更新包括几个部分: 更好的支持 Scrapy 爬虫 支持 Git 仓库同步 支持长任务 更好的爬虫管理 更新日志 功能 / 优化 更好的支持 Scrapy. 爬虫识别,settings.py 配置,日志级别选择,爬虫选择. #435 Git 同步. 允许用户将 Git 项目同步到 Crawlab. 长任务支持. 用户可以添加长任务爬虫,这些爬虫可以跑长期运行的任务. 425 爬虫列表优化. 分状态任务列数统计,任务列表详情弹出框,图例. 425 版本升级检测. 检测最新版本,通知用户升级. 批量操作爬虫. 允许用户批量运行/停止爬虫任务,以及批量删除爬虫. 复制爬虫. 允许用户复制已存在爬虫来创建新爬虫. 微信群二维码. Bug 修复 定时任务爬虫选择问题. 字段不会随着爬虫变化而...阅读全文

博文 2020-02-24 16:32:42 MarvinZhang

Go 爬虫之 colly 从入门到不放弃指南

最近发现知乎上感兴趣的问题越来越少,于是准备聚合下其他平台技术问答,比如 segmentfault、stackoverflow 等。 要完成这个工作,肯定是离不开爬虫的。我就顺便抽时间研究了 Go 的一款爬虫框架 colly。 概要介绍 colly 是 Go 实现的比较有名的一款爬虫框架,而且 Go 在高并发和分布式场景的优势也正是爬虫技术所需要的。它的主要特点是轻量、快速,设计非常优雅,并且分布式的支持也非常简单,易于扩展。 如何学习 爬虫最有名的框架应该就是 Python 的 scrapy,很多人最早接触的爬虫框架就是它,我也不例外。它的文档非常齐全,扩展组件也很丰富。当我们要设计一款爬虫框架时,常会参考它的设计。之前看到一些文章介绍 Go 中也有类似 scrapy 的实现。 相比而言,...阅读全文

博文 2019-08-04 22:04:30 波罗学

GoLang 随笔 - iota 的特性与用法

依靠编译器完成自增 const ( a = iota // a = 0 b // b = 1 c // c = 2 ) 利用只写变量 _ 跳过自增 const ( a = iota // a = 0 b // b = 1 _ _ c // c = 4 ) 可以插入其他常量,且不影响iota自增 const ( a = iota // a = 0 b = "b" // b = "b" c = iota //c = 2 d // d = 3 ) 如果定义在同一行 const ( a, b = iota , iota + 1 c, d e, f ) // a = 0, b = 1, c = 2, d = 3, e = 4, f = 5 定义位掩码表达式 const ( a = 1 << iota ...阅读全文

博文 2019-07-21 06:32:37 凉丶心园

爬虫管理平台Crawlab v0.4.1发布(可配置爬虫)

前言 Crawlab是基于Golang的分布式爬虫管理平台,支持Python、NodeJS、Java、Go、PHP等多种编程语言以及多种爬虫框架。 相信已经对 Crawlab 有所了解的同学应该大概了解 Crawlab 是一个爬虫管理平台。如果不理解什么是爬虫管理平台,建议读者先阅读《如何快速搭建实用的爬虫管理平台》。简单来说,爬虫管理平台是一种能够管理爬虫和执行、监控爬虫任务的平台,可以将爬虫操作可视化出来。而 Crawlab 作为一个灵活且强大的爬虫管理平台,从今年 3 月份上线以来,已经收获不少爬虫工程师以及开发者的好评,很多用户已经在企业中部署使用 Crawlab。现在 Crawlab 在 Github 上已经有 3.1k stars,Dockerhub 上有 7.1k pulls。...阅读全文

博文 2019-12-17 15:32:42 MarvinZhang

回溯

如何理解回溯 回溯可以理解成一个人在前进的过程中有无数个岔路口,经过一个岔路口,又有一个岔路口。每在一个岔路口选择一个道都会影响这个人之后的人生。 有的人在每一个岔路口都能做出十分正确的选择,所以这个人的生活和事业都达到了人生巅峰。而有的人一步,步步错,可能就是它最初的选择的那个岔路口就是错的,导致这个人就一致生活坎坷。 经典的回溯算法解决的问题很多,如八皇后、0-1背包问题、图的着色、旅行商问题、全排列问题。 下面挑几个例子来 八皇后问题 问题: 假设有一个 8x8 的棋盘,希望往整个棋盘放入8个棋子(皇后Q),每个棋子所在的行,列,对角线都不能有其他的棋子,下面的图,第一幅图就是符合条件的,而第二幅图就是不符合条件的,八皇后问题就是希望找到所有期望满足的放置棋子的方法。 八皇后问题 那么...阅读全文

博文 2019-08-25 17:32:51 OOM_Killer

爬虫管理平台Crawlab v0.3.0发布(Golang版本)

基于Golang的分布式爬虫管理平台,支持Python、NodeJS、Java、Go、PHP等多种编程语言以及多种爬虫框架。 项目自今年三月份上线以来受到爬虫爱好者们和开发者们的好评,不少使用者还表示会用Crawlab搭建公司的爬虫平台。经过近数月的迭代,我们陆续上线了定时任务、数据分析、网站信息、可配置爬虫、自动提取字段、下载结果、上传爬虫等功能,将Crawlab打造得更加实用,更加全面,能够真正帮助用户解决爬虫管理困难的问题。 Crawlab主要解决的是大量爬虫管理困难的问题,例如需要监控上百个网站的参杂scrapy和selenium的项目不容易做到同时管理,而且命令行管理的成本非常高,还容易出错。Crawlab支持任何语言和任何框架,配合任务调度、任务监控,很容易做到对成规模的爬虫项目...阅读全文

博文 2019-07-31 21:32:37 MarvinZhang

好程序员web前端分享:如何理解web语义化?

好程序员web前端分享:如何理解web语义化?首先,在理解之前,我们需要先了解,什么是语义化。所谓语义化,简单来说,就是能够更清晰,更直观的理解语言所要表达的含义,所谓词必达意就是这个意思。那么在开发过程中的语义化指的是什么呢?就是能够让除了当事开发者能快速熟悉代码之外,最主要的就是让机器更方便的读懂代码。 那么有得童鞋就要说了,想要让同事一目了然的读懂我们的代码,那么最方便的不应该是中文编程么?这里要说句,太天真了。我们的代码都是运行在计算机中,不论基于的环境如何;而计算机在进行各种运算的过程中,需要讲我们输入的文本转成特定的编码格式,如果使用英文编程,我们写出花来也不过26个字母,而中文的博大精深这里就不做赘述,况且各类编程语言的发明者都是歪果仁呢。 那么web语义化有何好处呢?首先语义...阅读全文

博文 2019-03-29 16:00:48 hcxy

爬虫管理平台Crawlab v0.3.0发布(Golang版本)

基于Golang的分布式爬虫管理平台,支持Python、NodeJS、Java、Go、PHP等多种编程语言以及多种爬虫框架。 项目自今年三月份上线以来受到爬虫爱好者们和开发者们的好评,不少使用者还表示会用Crawlab搭建公司的爬虫平台。经过近数月的迭代,我们陆续上线了定时任务、数据分析、网站信息、可配置爬虫、自动提取字段、下载结果、上传爬虫等功能,将Crawlab打造得更加实用,更加全面,能够真正帮助用户解决爬虫管理困难的问题。 Crawlab主要解决的是大量爬虫管理困难的问题,例如需要监控上百个网站的参杂scrapy和selenium的项目不容易做到同时管理,而且命令行管理的成本非常高,还容易出错。Crawlab支持任何语言和任何框架,配合任务调度、任务监控,很容易做到对成规模的爬虫项目...阅读全文

博文 2019-08-01 09:04:47 MarvinZhang

爬虫管理平台 Crawlab v0.4.8 发布(环境安装 + Git 高级应用)

前言 本次更新包括几个部分: 支持界面安装(预装)Python 以外的多种语言环境 更好的安装界面,可以看到多个节点的安装情况 优化 RPC,基于 Redis 延迟队列作为 RPC 更多功能配置 更新日志 功能 / 优化 支持更多编程语言安装. 现在用户可以安装或预装更多的编程语言,包括 Java、.Net Core、PHP. 安装 UI 优化. 用户能够更好的查看和管理节点列表页的安装. 更多 Git 支持. 允许用户查看 Git Commits 记录,并 Checkout 到相应 Commit. 支持用 Hostname 作为节点注册类型. 用户可以将 hostname 作为节点的唯一识别号. RPC 支持. 加入 RPC 支持来更好的管理节点通信. 是否在主节点运行开关. 用户可以决定...阅读全文

博文 2020-03-11 19:32:57 MarvinZhang

爬虫管理平台 Crawlab v0.4.6 发布

前言 本次更新主要集中在日志管理、任务触发、爬虫展示等优化,以及加入 Node.js SDK。 更新日志 功能 / 优化 Node.js SDK. 用户可以将 SDK 应用到他们的 Node.js 爬虫中. 日志管理优化. 日志搜索,错误高亮,自动滚动. 任务执行流程优化. 允许用户在触发任务后跳转到该任务详情页. 任务展示优化. 在爬虫详情页的最近任务表格中加入了“参数”列. #295 爬虫列表优化. 在爬虫列表页加入"更新时间"和"创建时间". #505 页面加载占位器. Bug 修复 定时任务配置失去焦点. #519 无法用 CLI 工具上传爬虫. #524 产品规划 结果展示 支持其他数据库 爬虫 支持 Git 仓库同步 更好的 Scrapy 支持 更好的长任务支持 可配置爬虫 可配...阅读全文

博文 2020-02-15 10:32:40 MarvinZhang

golang并发控制

golang并发控制 给大家推荐一个并发控制包, 有了github.com/lxzan/runner, 妈妈再也不担心我的爬虫把别人家网站搞挂了 package github.com/lxzan/runner example // 并发10个任务, 每10ms检查一次新任务 package main import ( "context" "fmt" "github.com/lxzan/runner" "os" "os/signal" "syscall" "time" ) func main() { ctx, cancel := context.WithCancel(context.Background()) r := runner.New(ctx, 10, 10*time.Milliseco...阅读全文

博文 2019-12-06 11:32:34 codebeast