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
- 设置 \\ 搜索偏好设置 \\ 抓取工具和编入索引
- 自定义 robots.txt这段文字将代替默认的 robots.txt 内容投放到搜索引擎。请谨慎使用。
- 自定义 robots 标头标记这些标记用于设置投放到搜索引擎的 robots 标头标记。请谨慎使用。
- 设置 \\ 搜索偏好设置 \\ 获利
- 自定义 ads.txt您可以使用 ads.txt 文件具体识别和授权数字广告资源的转销商。
- https://draft.blogger.com/go/adstxt
- https://developers.google.com/search/reference/robots_meta_tag?hl=zh
- 广告资源管理 > 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的主要内容,如果未能解决你的问题,请参考以下文章