Spiderman 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Spiderman 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Spiderman 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Spiderman 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Spiderman 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

Spiderman 是一个基于微内核+插件式架构的网络蜘蛛,它的目标是通过简单的方法就能将复杂的目标网页信息抓取并解析为自己所需要的业务数据。

最新提示:欢迎来体验最新版本Spiderman2,http://git.oschina.net/l-weiwei/Spiderman2 重新打造,重新起步,努力做更好用的爬虫!

主要特点

* 灵活、可扩展性强,微内核+插件式架构,Spiderman提供了多达 10 个扩展点。横跨蜘蛛线程的整个生命周期。
* 通过简单的配置就可以将复杂的网页内容解析为自己需要的业务数据,无需编写一句代码
* 多线程

怎么使用?

  • 首先,确定好你的目标网站以及目标网页(即某一类你想要获取数据的网页,例如网易新闻的新闻页面)
  • 然后,打开目标页面,分析页面的HTML结构,得到你想要数据的XPath,具体XPath怎么获取请看下文。
  • 最后,在一个xml配置文件里填写好参数,运行Spiderman吧!

这里有个抓取案例

这里有篇文章介绍示例: http://my.oschina.net/laiweiwei/blog/100866

XPath获取技巧?

最新提示:发现Chrome浏览器的控制台可以直接对网页执行xpath调试,只需要输入$x("xpath 表达式")即可实时进行当前打开网页的xpath调试,非常棒!

这里只说下Chrome浏览器,其他浏览器估计也差不多,只不过插件不同而已。

  • 首先,下载xpathonclick插件,https://chrome.google.com/webstore/search/xpathonclick
  • 安装完毕之后,打开Chrome浏览器,可以看到右上角有个“X Path” 图标。
  • 在浏览器打开你的目标网页,然后点击右上角的那个图片,然后点击网标上你想要获取XPath的地方,例如某个标题
  • 这时候按住F12打开JS控制台,拖到底部,可以看到一串XPath内容
  • 记住,这个内容不是绝对OK的,你可能还需要做些修改,因此,你最好还是去学习下XPath语法
  • 学习XPath语法的地方:http://www.w3school.com.cn/xpath/index.asp
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (24)

加载中
支持银行控件么?
2018/06/07 14:19
回复
举报
自风软件作者
http://my.oschina.net/laiweiwei/blog/100866 【抛砖引玉】抓取OSC的问答数据展现垂直爬虫的能力 Spiderman
2013/01/08 18:17
回复
举报
自风软件作者
Spiderman 差不多能有个beta版本了
2013/01/16 20:28
回复
举报
自风软件作者
基于 Spiderman 做的公司爬虫,两分钟内500个Deal数据,250个Deal的图片本地化做完,太给力了!!!
2013/01/16 21:18
回复
举报
自风软件作者
试试 Gitcate,Spiderman 从github迁移到gitcate https://gitcafe.com/laiweiwei/Spiderman
2013/01/22 12:18
回复
举报
自风软件作者
Spiderman 之前仅支持XML的一个页面解析多个Model的功能,现在HTML也支持了哦!
2013/01/25 16:52
回复
举报
自风软件作者
Spiderman eweb4j 加油~
2013/01/26 13:20
回复
举报
自风软件作者
Spiderman 这两个月来又强大了不少,分页,只抓特殊的频道页,控制发现新url,xml、命名空间,忽略http失败的状态码,多种子链接,抓取效率,性能,userAgent,各种新feature啊
2013/03/09 21:19
回复
举报
自风软件作者
Spiderman 单篇文章分页抓取初步成果已出,但还需优化,做到递归且按顺序抓取下一页的内容
2013/03/12 12:25
回复
举报
自风软件作者
站内有朋友能帮忙找分成三页以上的单篇文章吗?像这个是分成两页的http://www.csdn.net/article/2013-03-11/2814424-chromeos-android-surface,我想要三页或以上的,要测试下Spiderman单篇文章抓取效果,多谢各位啦
2013/03/12 13:24
回复
举报
更多评论
暂无内容
发表了博客
2018/03/01 07:43

SpiderMan成长记(爬虫之路)

第一章 爬虫基础 1.1 爬虫基本原理 1.2 请求库 -- urllib库的使用 1.3 请求库 -- requests库的使用 1.4 数据解析 -- 正则基础  1.5 数据解析 -- lxml与Xpath 1.6 数据解析 -- BeautifulSoup库详解  1.6 动态数据抓取 -- PyQuery详解  1.7 动态数据抓取 -- Selenium详解 第二章 爬虫实战 2.1 Requests + 正则抓取猫眼电影 2.2 分析Ajax请求爬取今日头条街拍美图 2.3 使用Selenium模拟浏览器抓取淘宝视频美食信息 2.4 第三章 ...

0
0
发表了博客
2013/01/04 19:25

Spiderman Java开源垂直爬虫抓取示例【需求小复杂】

首先要说明的是,本文仅介绍了Spiderman解析 XML 的示例,Spiderman解析 HTML 也是差不多的原理,不过更考验“爬虫”的能力。 这个以后再发篇文章详细说明 【 已经有了请点击这里】:) 在Github的spiderman-sample项目里面有好几个案例,可以跑跑看。 这是Spiderman链接: http://www.oschina.net/p/spiderman 1.Spiderman是一个垂直领域的爬虫,可用于抓取特定目标网页的内容,并且解析为所需要的业务数据,整个过程追求无需任何...

22
27
发表于大前端专区
2013/01/08 18:11

【最新更新支持频道分页、文章分页】【抛砖引玉】抓取OSC的问答数据展现垂直爬虫的能力

更新提示(2013-03-13):最新版本更新: 支持定向抓取某频道 <!-- | name:目标名称   --> <target name="travel" isForceUseXmlParser="1"> <!-- | 限制目标URL的来源为网易旅游子频道,在spiderman里面把频道页叫做"来源url" --> <sourceRules policy="and"> <rule type="regex" value="http://travel\.163\.com/special/cjgat(_\d+)?/"> <!-- | 定义如何在来源页面上挖掘新的 UR...

100
135
发表了博客
2018/08/09 14:55

golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍

golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍 go语言爬虫框架: gocolly/colly,goquery,colly,chromedp,webloop,go_spider,Pholcus https://github.com/hu17889/go_spider Pholcus 幽灵蛛重量级爬虫软件(含3种操作界面) - Golang中国 https://www.golangtc.com/p/557473c9b09ecc2aa700000b henrylee2cn/pholcus_lib: 公共维护的Pholcus爬虫规则库 https://github.com/henrylee2cn...

0
0
发表了博客
2019/03/01 20:03

scrapy框架学习

- 一 什么是scrapy?    - Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板。   - 安装      - linux: pip3 install scrapy      - windows:        - 1) pip3 install wheel        - 2) 下载Twisted (http://www.lfd.uci.edu/~gohlke/pytho...

0
0
发表了博客
2019/05/11 23:40

24、博客达人

首先,登录博客人人都是蜘蛛侠。 然后,在文章《未来已来(三)——同九义何汝秀》中,发表一个评论,这个评论中必须要带有“selenium”这个词。 URL https://wordpress-edu-3autumn.localprod.forc.work/wp-login.php spiderman crawler334566 1 from selenium import webdriver 2 import time 3 driver = webdriver.Chrome() 4 5 # 1、打开浏览器,登录网站“人人都是蜘蛛侠” 6 driver.get('https://wordpres...

0
0
发表了博客
2019/01/25 16:43

(翻译)W3C的Turtle文档

主要翻译如下页面,https://www.w3.org/TR/turtle/,对该页面中Turtle的内容部分进行翻译,希望对使用Turtle的朋友们有所帮助。 1 简介 2 Turtle语言 2.1 简单的三元组 2.2 谓词列表 2.3 宾语列表 2.4 IRIs 2.5 RDF字面量 2.5.1 引用的字面量 2.5.2 数字 2.5.3 布尔值 2.6 RDF空节点 2.7 Turlte中的嵌套无标签空节点 2.8 集合 3 举例 4. Turtle与SPARQL的对比 5 一致性 5.1 媒体类型和内容编码 6 Turtle语法 6.1 White Space(空...

0
0
发表了博客
2013/08/01 22:58

给webmagic加上了注解支持

今天有个网友在博客回帖,能不能用注解来写一个爬虫?想了想,因为Javaer总习惯结果有个对象Model(我在自己用的时候也是这样),ResultItems的key-value形式难免会有点麻烦,何不将抽取和Model合为一体呢?好了!现在爬osc博客只有这点代码了!而且这个对象本身是可以继续使用的! @TargetUrl("http://my.oschina.net/flashsword/blog/*") public class OschinaBlog { @ExtractBy("//title") private String title; @ExtractBy(...

5
3
发表于大前端专区
01/27 09:55

Algolia国內替代方案

![Algolia 官网截图](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/119fc96098234413a1e8bf9bea279b73~tplv-k3u1fbpfcp-zoom-1.image) Algolia 官网截图 # Algolia 是什么? Algolia 是一家美国的创业公司,他们提供了很容易使用的搜索引擎的服务,让开发者可以快速对站内内容进行检索和搜索。 ## Algolia 在国内能用吗? 短的答案: 会很慢。 **长的答案:** Algolia 在香港有服务节点,在中国大陆暂时没有服务节点,你在下...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2013/12/26 17:02

启动后就卡在这里了spider tasks of site[sina-guonei] start...

@自风 你好,想跟你请教个问题:下面这个配置文件为什么跑到这里就卡注了,急啊!配置文件有错误麽? [SPIDERMAN] 16:59:31 [INFO] ~ plugin[spider_plugin] extension-point[end] loading ok [SPIDERMAN] 16:59:31 [INFO] ~ file -> D:\workplace\zhuoan\Spider\config\dbEnv\sina-guonei\00000000.jdb delete success ! [SPIDERMAN] 16:59:31 [INFO] ~ file -> D:\workplace\zhuoan\Spider\config\dbEnv\sina-guonei\je.info....

2
0
发表了问答
2013/11/08 09:27

如何设置网络代理,进行爬取

@自风 你好,想跟你请教个问题:公司上网都是需要通过http代理,问一下spiderman如何设置代理进行爬取网页。

2
0
发表了问答
2013/01/25 17:03

关于网络爬虫spiderman的一些问题

最近在研究网络爬虫spiderman,遇到了下面这些问题: 1:在抓取页面数据的时候,我如何才能控制只抓取当前页面并且匹配目标URL规则的数据内容。(测试过程中分页的数据也抓去进来了) 2:我想抓取当前页面中的列表数据,就像标题,链接什么的,因为在匹配目标URL的时候,可能存在其他的URL匹配这个目标URL,但是又不是我想要的数据。 @想风一样自由

9
2
发表了问答
2016/04/27 20:49

spiderman2执行.bat成功,使用eclipse却出现下面报错

@自风 想请教一下,这是什么情况? Results : Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 39:19 min [INFO] Finished at: 2016-04-27T20:03:47+08:00 [INFO] Final Memory: 12M/90M [INFO] -------------...

2
0
发表了问答
2013/12/13 10:06

spiderman抓取百度搜索出的新闻

@自风 你好,想跟你请教个问题: 我现在想通过spiderman抓取百度搜索出的所有网页内容,分别贴出xml和debug <?xml version="1.0" encoding="UTF-8"?> <!-- | Spiderman Java开源垂直网络爬虿 | 项目主页: https://gitcafe.com/laiweiwei/Spiderman | author: l.weiwei@163.com | blog: http://laiweiweihi.iteye.com,http://my.oschina.net/laiweiwei | qq: 493781187 | email: l.weiwei@163.com | create: 2013-...

2
0
发表了问答
2015/11/28 13:36

spiderman there is no website to fetch

@自风 运行sample出现下面问题,要怎么解决了 [DEBUG] 2015-11-28 13:09:43 [config] ~ (EWeb4JConfig.java:225) EWeb4J start configuration info have bean validated and pushed to the cache. [DEBUG] 2015-11-28 13:09:43 [config] ~ (EWeb4JConfig.java:248) properties module -> ok [DEBUG] 2015-11-28 13:09:43 [config] ~ (EWeb4JConfig.java:256) ioc module -> ok java.lang.RuntimeException: there is no website...

1
0
发表了问答
2015/06/06 14:23

spiderman想抓取分页页面列表的信息,而不是进入每个列表后页面的具体信息,怎么配置xml?(我只要列表中的主要信息,没必要进入页面的的具体信息)

@自风 你好,想跟你请教个问题: spiderman想抓取分页页面列表的信息,而不是进入每个列表后页面的具体信息,怎么配置xml?(我只要列表中的主要信息,没必要进入页面的的具体信息)

2
0
发表了问答
2015/06/05 10:03

@自风 你好 ,Spiderman种子链接规则设置

@自风 你好,想跟你请教个问题: 关于种子链接的问题,是不是设置成网站的一个主页【如:http://www.sina.com.cn/】只要在设置 <targets-> rule就可以遍历到这个网站下的所有网页呢? 查找规则跟链接层级有关系吗?

1
0
发表了问答
2015/05/20 00:02

Spiderman爬虫

@自风 你好,想跟你请教个问题:我有这么一个场景 我要爬去一个列表页面 有分页的(下一页),列表里面有个详情页面 我要的数据是(列表页面中的A字段 和详情页面中的数据B字段)组合而成的,这种场景Spiderman好配置么?还是需要自己实现抓取规则?

3
0
发表了问答
2015/06/01 20:47

@自风 Spiderman爬虫遇到问题【抓取批量数据】

<?xml version="1.0" encoding="UTF-8"?> <!-- | Spiderman Java开源垂直网络爬虫 | author: l.weiwei@163.com | blog: http://laiweiweihi.iteye.com | qq: 493781187 | time: 2013-01-08 16:12 --> <beans>   <!--    | name:名称    | url:种子链接    | reqDelay:{n}s|{n}m|{n}h|n每次请求之前延缓时间    | enable:0|1是否开启本网站的抓取    | charset:网站字符集    | schedule:调度时间,每隔多长时间重新从...

7
1
发表了问答
2015/02/15 10:16

spiderman的爬取流程xml配置不包含嵌套

@自风 你好,想跟你请教个问题: 访问了您提供的spiderman的文档 http://git.oschina.net/l-weiwei/spiderman,其中oschina.xml详尽介绍了spiderman框架定义的标签节点的使用,对此我有个疑问,如果是嵌套爬取的该怎么实现?比如,抓取到了某个页面元素后,找到新的url,且此url要根据自己的一套规则和目标抓取,在oschina.xml找不到实现嵌套的标签。。...

4
0
发表了问答
2014/11/05 14:32

配置出错,xpath 抓取为空

@自风 你好,想跟你请教个问题:对于那种有二级域名或者有防爬和不在同一主机的怎么爬去新闻比如 http://roll.finance.sina.com.cn/finance/gncj/dfjj/index.shtml(防爬取) http://roll.finance.sina.com.cn/finance/gncj/bwdt/index.shtml(不在同一个主机) 求指导,谢谢

1
0
发表了问答
2014/12/09 11:30

href中有javascript代码该如何分析?

请问在 <parser xpath="//a[text()='下一页']" attribute="href" /> 的结果里包含javascript的代码,比如:javascript:pg.toPage(2); 如果我想得到里面的数字2该如何做? 我通过如下代码实现: <nextPage> <field name="next_url" isArray="1"> <parsers> <parser xpath="//a[text()='下一页']" attribute="href" /> <parser exp="$this.replace('javascript:pg.toPage(','')" /> <parser exp="$this.replace(');','')" /> <par...

2
0
发表了问答
2014/09/25 09:30

ecplise运行spiderman时遇到个问题,请教一下?

@自风 你好,想跟你请教个问题:[ERROR] Failed to execute goal on project spiderman-sample: Missing: ---------- 1) zweb:zweb-core🏺0.0.1-SNAPSHOT 2 required artifacts are missing. for artifact: org.eweb4j:spiderman-sample:pom:0.1.0-SNAPSHOT 刚学习maven,ecplise下运行“Maven test”报这个错不知道是什么原因引起的?...

6
0
发表了问答
2013/12/10 15:27

spiderman是否支持定时二次抓取功能?

@自风 你好,想跟你请教个问题:最近在看spiderman的源码,突发奇想——对一个站点内一篇文章在抓取后被修改更新了,那么如何利用spiderman对被修改过的这篇文章进行二次抓取的问题。或许我还没完全理解透spiderman的工作机制,因此想请教下!

1
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
24 评论
339 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部