Web-crawler

Posted osoft

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web-crawler相关的知识,希望对你有一定的参考价值。

 

 

 
1. spider
 1.1 robots.txt
 1.2 ads.txt
 1.3 security.txt
 1.4 blogger.com 上的 robots.txt和ads.txt
2. 爬虫软件列表
 2.1 介绍一些比较方便好用的爬虫工具和服务
 2.2 33款可用来抓数据的开源爬虫软件工具(全都没试过)
3. 更多相关

 

1. spider

https://en.wikipedia.org/wiki/Web_crawler
https://zh.wikipedia.org/zh-hans/網路爬蟲
网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引。
网络爬虫也可称作网络蜘蛛[1]、蚂蚁、自动索引程序(automatic indexer),或(在FOAF软件中)称为网络疾走(web scutter)。

1.1 robots.txt

放在网页服务器上,告知网络蜘蛛哪些页面内容可获取或不可获取。
https://zh.wikipedia.org/wiki/Robots.txt
https://en.wikipedia.org/wiki/Robots_exclusion_standard
robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
robots.txt协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。注意robots.txt是用字符串比较来确定是否获取URL,所以目录末尾有与没有斜杠“/”表示的是不同的URL。robots.txt允许使用类似"Disallow: *.gif"这样的通配符[1][2]。
其他的影响搜索引擎的行为的方法包括使用robots元数据:
<meta name="robots" content="noindex,nofollow" />
humans.txt
https://en.wikipedia.org/wiki/Robots_exclusion_standard#Alternatives

1.2 ads.txt

a standard for listing authorized ad sellers 列出授权的标准
https://en.wikipedia.org/wiki/Ads.txt

1.3 security.txt

a file to describe the process for security researchers to follow in order to report security vulnerabilities
描述安全研究人员为了报告安全漏洞而要遵循的过程的文件
https://en.wikipedia.org/wiki/Security.txt

1.4 blogger.com 上的 robots.txt和ads.txt

2. 爬虫软件列表

2.1 介绍一些比较方便好用的爬虫工具和服务

https://zhuanlan.zhihu.com/p/57678048
介绍一些比较方便好用的爬虫工具和服务

Chrome 扩展 Web Scraper webscraper.io 累计下载30w,点选式的数据抓取,有自己的 Cloud Scraper,支持定时任务、API 式管理、代理切换功能。可导出CSV 等
Data Scraper Data-miner.io 免费版本每个月只能爬取 500 个页面 可导出CSV 等
Listly listly.io excel
Mercury mercury.postlight.com  
框架 Scrapy scrapy.org Python 爬虫学习者使用最多的爬虫框架
PySpider github.com/binux/pyspider 基于Python, 可视化的管理,在线编程。分布式爬取,可存储到各种数据库。代码来实现编程,可扩展性很强的,简单易用。
Apify sdk.apify.com 基于Node.js, 可定制化也非常强,支持各种文件格式的导出,并且支持和 Apify Cloud 的对接实现云爬取。
商业
服务
Parsehub www.parsehub.com (Mac,Windows,Linux), Firefox扩展, 导出为 JSON, CSV, Google 表格等,基于Web, 可以使用机器学习技术识别复杂的文档. 免费版本限制为 5 个项目,每次限制爬取 200 页
Dexi.io dexi.io 可视化点击抓取,自然语言解析工具,网页端完成,可通过控制台来完成任务的运行和调度。提供代理 IP,与第三方集成: http://Box.net、Google Drive 等工具。(之前叫CloudScrape)
Octparse www.octoparse.com 免费版支持创建 10 个爬取的基础服务
Content Grabber www.contentgrabber.com 有验证码识别等解决方案,并使用 Nohodo 作为 IP 代理。数据支持导出常用格式,也支持 PDF 格式导出。
Mozenda www.mozenda.com 提供了 FTP、亚马逊 S3、Dropbox 等的支持。
ScraperAPI www.scraperapi.com 提供简易的页面渲染服务,通过 API 来操作的
Diffbot www.diffbot.com 通过机器学习算法、图像识别、自然语言处理等方案综合解析,可说是目前业界数一数二的页面智能解析方案。
Import.io www.import.io 提供了从数据爬取、清洗、加工到应用的一套完整解决方案
Embed.ly embed.ly 智能化页面解析方案,类似 Diffbot,可以自动完成页面的解析。
ScrapeStorm www.scrapestorm.com (Mac,Windows,Linux), 支持自动识别翻页, 自动识别内容, javascript 渲染, 模拟登录爬取等等。里面是后裔采集器?
Shenjianshou
神箭手
www.shenjian.io 国内数一数二的爬虫平台。旗下后裔采集器,就是上文介绍的 ScrapeStorm 所采用的爬取工具.
Bazhuayu
八爪鱼
www.bazhuayu.com 国内比较知名的采集器,功能类似后裔采集器,可以通过可视化点选完成爬虫的相关配置,部分功能比后裔采集器更加强大。
Zaoshu zaoshu.io 目前已经不面向于个人用户,主要是提供企业数据服务


推荐的爬虫工具, 上文中绿色的2个,就认识Web Scraper。
Scrapy 看起来比较热门。
https://zh.wikipedia.org/wiki/Scrapy
https://en.wikipedia.org/wiki/Scrapy
Scrapy(/ˈskreɪpi/ SKRAY-pee[2]是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的程序框架。该框架主要由Scrapinghub 公司进行维护。

2.2 33款可用来抓数据的开源爬虫软件工具(全都没试过)

http://www.woshipm.com/xiazai/216336.html

Arachnid GPL Java OS 小型html解析器 http://www.woshipm.com/xiazai/216336.html
crawlzilla Apache License 2   Linux 中文分词能力 https://github.com/shunfa/crawlzilla
Ex-Crawler GPLv3 Java 跨平台 守护进程执行,数据库存储  
Heritrix Apache Java 跨平台 严格遵照robots文件的排除指示和META robots标签 https://github.com/internetarchive/heritrix3
heyDr GPLv3 Java 跨平台 轻量级开源多线程垂直检索爬虫框架  
ItSucks   Java   提供swing GUI操作界面  
jcrawl Apache Java 跨平台 轻量、性能优良  
Jspider LGPL Java 跨平台 功能强大,容易扩展  
Leopdo Apache Java 跨平台 全文和分类垂直搜索,以及分词系统  
MetaSeeker       网页抓取、信息提取、数据抽取工具包 www.敏敏词.com/cn/node/download/front
Playfish MIT Java 跨平台 通过XML配置文件实现可定制与可扩展  
Spiderman Apache Java 跨平台 灵活、扩展性强,微内核+插件式架构,简单的配置完成抓取,无需编写代码  
webmagic Apache Java 跨平台 国产开源软件 http://git.oschina.net/flashsword20/webmagic
Web-Harvest BSD Java   运用XSLT、XQuery、正则表达式等技术来实现对Text或XML的操作,可视化界面  
WebSPHINX Apache Java   爬虫工作平台和WebSPHINX类包  
YaCy GPL Java Perl 跨平台 基于P2P的分布式Web搜索引擎  
QuickRecon GPLv3 Python Windows Linux 具有查找子域名名称、收集电子邮件地址并寻找人际关系等功能  
PyRailgun MIT Python 跨平台 简洁、轻量、高效的网页抓取框架 (国产) https://github.com/princehaku/pyrailgun#readme
Scrapy BSD Python 跨平台 基于Twisted的异步处理框架,文档齐全 https://github.com/scrapy/scrapy
hispider BSD C++ Linux 支持多机分布式下载, 支持网站定向下载  
larbin GPL C/C++ Linux 高性能的爬虫,只负责抓取不负责解析  
Methabot   C/C++ Windows Linux 速度优化, 可抓取web, ftp及本地文件系统 http://www.oschina.net/code/tag/methabot
NwebCrawler GPLv2 C# Windows 统计信息、执行过程可视化 http://www.open-open.com/lib/view/home/1350117470448
Sinawler GPLv3 C# .NET Windows 国内第一个针对微博数据的爬虫程序!原名“新浪微博爬虫”。  
spidernet MIT C# Windows 以递归树为模型的多线程web爬虫程序,支持以GBK (gb2312)和utf8编码的资源,使用sqlite存储数据 https://github.com/nsnail/spidernet
Web Crawler LGPL Java LGPL 多线程,支持抓取PDF/DOC/EXCEL等文档来源  
网络矿工 BSD C# .NET Windows 功能丰富,毫不逊色于商业软件 (原soukey采摘)  
OpenWebSpider   php 跨平台 开源多线程网络爬虫,有许多有趣的功能  
PhpDig GPL PHP 跨平台 具有采集网页内容、提交表单功能 http://www.phpdig.net/navigation.php?action=demo
ThinkUp GPL PHP 跨平台 采集推特、脸谱等社交网络数据的社会媒体视角引擎,可进行交互分析并将结果以可视化形式展现 https://github.com/ThinkUpLLC/ThinkUp
微购 GPL PHP 跨平台 基于ThinkPHP框架开发的开源的购物分享系统 http://tlx.wego360.com/
Ebot GPLv3 ErLang 跨平台 可伸缩的分布式网页爬虫 https://github.com/matteoredaelli/ebot
Spidr MIT Ruby   可将一个或多个网站、某个链接完全抓取到本地  


3. 更多相关

为何大量网站不能抓取?爬虫突破封禁的6种常见方法
https://www.cnblogs.com/junrong624/p/5533655.html

当爬虫被拒绝时(Access Denied)
https://www.cnblogs.com/FengYan/archive/2012/07/31/2614335.html
反爬虫四个基本策略 (转自上文)
https://www.cnblogs.com/junrong624/p/5508934.html

以上是关于Web-crawler的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器