网页抓取数据百度百科(开源中国网络爬虫框架列表33款可用来抓数据的开源爬虫软件工具)
优采云 发布时间: 2021-12-18 12:11网页抓取数据百度百科(开源中国网络爬虫框架列表33款可用来抓数据的开源爬虫软件工具)
文章目录爬虫和反爬虫网页节点分析方法Jsoup、WebCollector、Htmlunit分析实例WebMagic介绍及使用WebMagic+Selenium自动登录爬虫实践总结与参考
本文项目san-spider的源地址
履带概念
1、爬虫的基本概念
爬虫的概念:网络爬虫(在FOAF社区也称为网络蜘蛛、网络机器人,更多时候是网络追逐)是按照一定的规则自动抓取万维网上信息的程序或脚本。这是百度百科对爬虫的定义。其实简单的说,爬虫就是利用编写好的程序自动提取网页信息。
2、 爬虫分类
通用爬虫:通用爬虫是搜索引擎(百度、谷歌、雅虎等)“爬虫系统”的重要组成部分。主要目的是将互联网上的网页下载到本地,形成互联网内容的镜像备份。简单来说,就是尽可能多;将互联网上的所有网页下载到本地服务器上,形成备份点,对这些网页进行相关处理(提取关键词,去除广告),最终提供用户搜索界面。
聚焦爬虫:聚焦爬虫按照指定的要求爬取网络上的指定数据。例如:获取豆瓣上的电影名称和评论,而不是获取整个页面的所有数据值。
增量爬虫:增量用于检测网站数据的更新,可以爬取网站的更新数据。
3、爬虫的价值
网上抓取的数据,对于我来说,数据量很大,就像有一个数据库一样,下一步就是如何将抓取到的数据进行产品化和商业化。
想象
开源的爬虫框架有很多,各种语言(如:python、java)实现的,有单机的,也有*敏*感*词*分布式的,多达上百种。详情可见:
开源中文网络爬虫框架列表
33款可用于抓取数据的开源爬虫软件工具
爬虫项目经验总结
github上有哪些优秀的java爬虫项目
我们的要求不高:
选择爬虫开源框架后,一定要考虑自己的业务特点,设计自己的项目架构。大多数使用爬虫的人都有类似的基本需求。
最后,一般的爬虫项目是这样的:
尽快下拉目标网站的页面
然后解析出有用的内容
存储到数据库并缓存在地上
稍微成熟的爬虫开源框架已经基本实现了第一步。
在分析了实际业务规则之后,我们需要考虑如何实施和保持更新网站变更策略。
爬虫框架选择
可以参考如何选择一个开源的网络爬虫框架吗?
在考虑选择时,主要有以下参考项目:
上面提到的爬虫基本上可以分为三类:
分布式爬虫
正午:
优点:分布式爬取、存储和索引、Hadoop支持、丰富的第三方插件
缺点:使用难度大,用Nutch进行爬虫二次开发,爬虫的准备和调试所需要的时间,往往是单机爬虫所需时间的十倍以上。
独立爬虫
对于单机爬虫框架,日常开发中最耗时的部分就是网页内容解析,所以首先要介绍一下优秀的HTML网页解析器:Jsoup和Htmlunit以及神器Selenium
在上面列出的独立爬虫中,Gecco 是基于注解实现的。官方demo无法运行,体验太差。首先,它会被排除在外。
至于其他的,功能非常丰富,而且都在不断更新中。
名称 Github Star 文档丰富度 使用项目数 网络博客帖子丰富度 (10)
爬虫4j
3.9k
5
199
6
网络魔术师
9.1k
很完整
586
7.5
网络采集器
2.6k
7
72
7.5
从以上指标来看,都是优秀的
根据我的实际项目操作对比,WebMagic文档丰富,上手快,demo项目也很多,所以我每天都在使用WebMagic。
非Java独立爬虫
主要说Python爬虫,以Scrapy为头,比较Java的主要优势是
总之:
分布式爬虫Nucth有点矫枉过正,开发效率不高,暂时不考虑。
在日常的Java项目中,我更喜欢WebMagic,当做爬虫工作需要很多时间和精力的时候,我会选择Python的Scrapy。
爬行动物和反爬行动物
网站反爬虫策略如何处理?如何高效抓取海量数据?
爬虫突破禁令的6种常用方法
常见的反爬虫机制及对策
爬行动物与反爬行动物之间的博弈
爬虫和反爬虫都在改进。下面是爬虫和反爬虫应用中涉及到的一些常见知识点。
网页节点的解析方法
CSS选择器+Xpath+正则表达式整理
xpath 表达式
Jsoup、WebCollector、Htmlunit 分析实例
Jsoup源代码
WebCollector 源代码
接下来我主要在大篇幅介绍Webmagic,因为我会先简单介绍一下其他的解析器。