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
 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

原文地址:https://www.cnblogs.com/sztom/p/12583188.html

时间: 2024-10-09 09:58:51

Web-crawler的相关文章

A web crawler design for data mining

Abstract The content of the web has increasingly become a focus for academic research. Computer programs are needed in order to conduct any large-scale processing of web pages, requiring the use of a web crawler at some stage in order to fetch the pa

[CareerCup] 10.5 Web Crawler 网络爬虫

10.5 If you were designing a web crawler, how would you avoid getting into infinite loops? 这道题问如果让我们设计一个网络爬虫,怎么样才能避免进入无限循环.那么何谓无限循环呢,如果我们将网络看做一个图Graph,无限循环就是当存在环Circle时可能发生的情况.当我们用BFS来进行搜索时,每当我们访问过一个网站,我们将其标记为已访问过,下次再遇到直接跳过.那么如何定义访问过呢,是根据其内容还是根据其URL链

Free web scraping | Data extraction | Web Crawler | Octoparse, Free web scraping

Free web scraping | Data extraction | Web Crawler | Octoparse, Free web scraping 人才知了

九章算法面试题44 设计一个Web Crawler

九章算法官网-原文网址 http://www.jiuzhang.com/problem/44/ 题目 如果让你来设计一个最基本的Web Crawler,该如何设计?需要考虑的因素有哪些? 解答 没有标准答案.需要尽可能的回答出多一点的考虑因素. 面试官角度 这个问题是面试中常见的设计类问题.实际上如果你没有做过相关的设计,想要回答出一个让面试官满意的结果其实并不是很容易.该问题并不局限于你在去面试搜索引擎公司时可能会问到.这里,我们从Junior Level和Senior Level两个角度来解

Python3 web Crawler

Python3 网络爬虫 1. 直接使用python3 一个简单的伪代码 以下这个简单的伪代码用到了set和queue这两种经典的数据结构, 集与队列. 集的作用是记录那些已经访问过的页面, 队列的作用是进行广度优先搜索. 1 2 3 4 5 6 7 8 9 10 11 queue Q set S StartPoint = "http://jecvay.com" Q.push(StartPoint)  # 经典的BFS开头 S.insert(StartPoint)  # 访问一个页面之

[感想]Web crawler with Python - 03.豆瓣电影TOP250

按照大牛的步骤简单地爬了豆瓣电影top250.过程感想记录一下. 教程链接:在这里 爬虫写完以后,一直出现错误 AttributeError: 'NoneType' object has no attribute 'find' #'nonetype'的对象没有属性发现 出错原因:调用对象是个None,然后调用出错.出错行原本是在第10页没有下一页的链接时候,判断soup.find('span', attrs={'class', 'next'}).find('a')  这句话的结果来选择返回结果,

Googlebot (Google Web search)

w推测"域名解析过程中,Google crawlers中首先是Googlebo中的Google Web search上阵.". 1 +-----+----------------+---------------------+-------------------------+------------------+ 2 | 23 | 111.251.93.170 | 2017-01-24 17:48:19 | Unidentified User Agent | | 3 | 24 | 11

[漏洞检测]Proxpy Web Scan设计与实现(未完待续)

Proxpy Web Scan设计与实现 1.简介:          Proxpy Web Scan是基于开源的python漏洞扫描框架wapiti改造的web漏洞扫描器,其主要解决以下几个问题而生: (1).当前互联网业务处于快速发展阶段,由于小版本更新迭代快,很难做到发布前必定经过安全测试.此外,安全小组面临安全人员不足和人工安全测试重复性工作过高的问题, (2).当前业界的漏洞扫描器更多的是基于简单的爬虫加扫描引擎的模式,可定制化幅度小,易用性和可扩展性都不是太好,如果要嵌入到发布流程则

how to download image from any web page in java 下载图片

http://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java (throws IOException) Image image = null; try { URL url = new URL("http://www.yahoo.com/image_to_read.jpg"); image = ImageIO.read(url); } catch (IOExceptio

web面试题

WEB前端面试题整理列表 1.列举你工作中遇到的IE6 BUG,谈谈解决方案. 3.如何用CSS分别单独定义IE6.7.8的width属性. 所有浏览器 通用height: 100px;IE6 专用_height: 100px;IE6 专用*height: 100px;IE7 专用*+height: 100px;IE7.FF 共用height: 100px !important; 4.CSS中哪些属性可以同父元素继承. 继承:(X)HTML元素可以从其父元素那里继承部分CSS属性,即使当前元素并