您查询的关键词是:
java
哪
个爬虫框架
好用
下面是原始网址
https://www.oschina.net/question/1422726_2158080
在 2021-04-11 19:24:52 的快照。
360搜索与该网页作者无关,不对其内容负责。
哪个开源的爬虫框架比较成熟???Java的最好?? - OSCHINA - 中文开源技术交流社区
首页
开源软件
问答
动弹
博客
翻译
资讯
Gitee
众包
活动
专区
源创会
求职/招聘
高手问答
开源访谈
周刊
公司开源导航页
登录
注册
首页
资讯
专区
问答
活动
软件库
发现
博客
动弹
Gitee
首页
资讯
专区
问答
活动
软件库
发现
博客
动弹
Gitee
登录
注册
开源问答
开源问答
技术问答
正文
哪个开源的爬虫框架比较成熟???
Java
的最好??
源1码1
发布于 2016/03/15 09:25
阅读 9K+
收藏
0
答案
9
哪个开源的爬虫框架比较成熟???
Java
的最好??
收藏 (
0
)
分享
微博
QQ
微信
举报
加载中
最多投票
最新
1
让往事随风
2016/03/16 14:09
1、如果是定向爬取几个页面,做一些简单的页面解析,
爬取效率不是核心要求,
那么用什么语言差异不大。
当然要是页面结构复杂,正则表达式写得巨复杂,尤其是用过那些支持xpath的类库/爬虫库后,就会发现此种方式虽然入门门槛低,但扩展性、可维护性等都奇差。因此此种情况下还是推荐采用一些现成的爬虫库,诸如xpath、多线程支持还是必须考虑的因素。
2、如果是定向爬取,且主要目标是解析js动态生成的内容
此时候,页面内容是有js/ajax动态生成的,用普通的请求页面->解析的方法就不管用了,需要借助一个类似firefox、chrome浏览器的js引擎来对页面的js代码做动态解析。
此种情况下,推荐考虑casperJS+phantomjs或slimerJS+phantomjs ,当然诸如selenium之类的也可以考虑。
3、如果爬虫是涉及大规模网站爬取,效率、扩展性、可维护性等是必须考虑的因素时候
大规模爬虫爬取涉及诸多问题:多线程并发、I/O机制、分布式爬取、消息通讯、判重机制、任务调度等等,此时候语言和所用框架的选取就具有极大意义了。
PHP对多线程、异步支持较差,不建议采用。
NodeJS:对一些垂直网站爬取倒可以,但由于分布式爬取、消息通讯等支持较弱,根据自己情况判断。
Python:强烈建议,对以上问题都有较好支持。尤其是Scrapy框架值得作为第一选择。优点诸多:支持xpath;基于twisted,性能不错;有较好的调试工具;
此种情况下,如果还需要做js动态内容的解析,casperjs就不适合了,只有基于诸如chrome V8引擎之类自己做js引擎。
至于C、C++虽然性能不错,但不推荐,尤其是考虑到成本等诸多因素;对于大部分公司还是建议基于一些开源的框架来做,不要自己发明轮子,做一个简单的爬虫容易,但要做一个完备的爬虫挺难的。
Python的较多,思路清晰操作相对简单,多参考一些
python框架
开发实例l。
评论 (
0
)
引用此答案
举报
1
mycms2013
2016/03/15 14:02
广度爬nutch +solr ,深度爬 webmgic + redis or mongodb
评论 (
0
)
引用此答案
举报
0
batcom
2016/03/15 11:43
python 的比较多,成熟的有Scrapy 极其
好用
,架构和思路都很清晰
评论 (
0
)
引用此答案
举报
0
Altman
2016/03/15 12:47
nutch
评论 (
0
)
引用此答案
举报
0
马里奥的哥哥
2016/03/15 13:04
nutch+1
评论 (
0
)
引用此答案
举报
0
ProgrammerJiang
2016/03/15 13:05
iPhone
又是你、大型爬虫用nutch,功能比较全。小型爬虫用webmagic 简单,容易上手。nutch 很大的、不容易上手
评论 (
0
)
引用此答案
举报
0
chunyisong
2016/03/16 15:03
引用来自“让往事随风”的评论
1、如果是定向爬取几个页面,做一些简单的页面解析,
爬取效率不是核心要求,
那么用什么语言差异不大。
当然要是页面结构复杂,正则表达式写得巨复杂,尤其是用过那些支持xpath的类库/爬虫库后,就会发现此种方式虽然入门门槛低,但扩展性、可维护性等都奇差。因此此种情况下还是推荐采用一些现成的爬虫库,诸如xpath、多线程支持还是必须考虑的因素。
2、如果是定向爬取,且主要目标是解析js动态生成的内容
此时候,页面内容是有js/ajax动态生成的,用普通的请求页面->解析的方法就不管用了,需要借助一个类似firefox、chrome浏览器的js引擎来对页面的js代码做动态解析。
此种情况下,推荐考虑casperJS+phantomjs或slimerJS+phantomjs ,当然诸如selenium之类的也可以考虑。
3、如果爬虫是涉及大规模网站爬取,效率、扩展性、可维护性等是必须考虑的因素时候
大规模爬虫爬取涉及诸多问题:多线程并发、I/O机制、分布式爬取、消息通讯、判重机制、任务调度等等,此时候语言和所用框架的选取就具有极大意义了。
PHP对多线程、异步支持较差,不建议采用。
NodeJS:对一些垂直网站爬取倒可以,但由于分布式爬取、消息通讯等支持较弱,根据自己情况判断。
Python:强烈建议,对以上问题都有较好支持。尤其是Scrapy框架值得作为第一选择。优点诸多:支持xpath;基于twisted,性能不错;有较好的调试工具;
此种情况下,如果还需要做js动态内容的解析,casperjs就不适合了,只有基于诸如chrome V8引擎之类自己做js引擎。
至于C、C++虽然性能不错,但不推荐,尤其是考虑到成本等诸多因素;对于大部分公司还是建议基于一些开源的框架来做,不要自己发明轮子,做一个简单的爬虫容易,但要做一个完备的爬虫挺难的。
Python的较多,思路清晰操作相对简单,多参考一些
python框架
开发实例l。
+
开源的爬虫框架
1
评论 (
0
)
引用此答案
举报
0
flwcy
2016/03/16 15:09
如果简单的爬取分析,就自己研究HttpClient获取网页,然后Jsoup解析就好了。
框架的话就楼上说的那些了
评论 (
0
)
引用此答案
举报
0
数据工厂
2016/05/10 13:45
建议你可以试试神箭手云爬虫框架(shenjianshou.cn),一站式云端爬虫编写平台,只需要写js就可以实现爬虫,自带js渲染、代理ip、验证码识别、图表控件、数据自动发布到网站等爬虫扩展函数库。
评论 (
0
)
引用此答案
举报
我要回答
源1码1
最近登录:今天 17:45
全部
源1码1的其他提问
Flink 源码编译失败了,咋整好呀?
1 回答
45 阅读
java
: -source 1.5 中不支持 lambda 表达式 ??设置了是1.8,咋整还是 1.5呀?
1 回答
74 阅读
Test framwork quit unexpectedly ,
java
main 运行报错了?
0 回答
28 阅读
我计划编译debzium UI的源码看看 dezium的前端 ?
1 回答
58 阅读
io.debezium.connector.mysql #connector æ��ä»¶, available connectors失败了??
0 回答
22 阅读
类似问题
有没有用
Java
实现的爬虫框架?
4 回答
520 阅读
有没有比较好的
Java
并发爬虫框架?
2 回答
1114 阅读
有没有基于Selenium的成熟 爬虫框架和开源代码,可以下载的
1 回答
298 阅读
Heritrix这
个爬虫框架
用的公司多不多,Heritrix
好用
不??
0 回答
733 阅读
关于NIO中Channel组件是否是异步非阻塞还是同步阻塞
0 回答
171 阅读
Nginx跳转本地目录容易犯的错误
0 回答
186 阅读
qt 我想画直角坐标系,而且还要有能在接受实时数据的时候,绘制出曲线图。怎么办?
0 回答
1613 阅读
关于OnClick的一点疑问
3 回答
353 阅读
阿里云栖开发者沙龙合肥专场:高并发企业级应用架构实践
0 回答
43 阅读
前端js 弹层框架 推荐
5 回答
1114 阅读
登录后可查看更多优质内容
使用微信快捷登录
©OSCHINA(OSChina.NET)
工信部
开源软件推进联盟
指定官方社区
深圳市奥思网络科技有限公司版权所有
粤ICP备12009483号
顶部
当然要是页面结构复杂,正则表达式写得巨复杂,尤其是用过那些支持xpath的类库/爬虫库后,就会发现此种方式虽然入门门槛低,但扩展性、可维护性等都奇差。因此此种情况下还是推荐采用一些现成的爬虫库,诸如xpath、多线程支持还是必须考虑的因素。
2、如果是定向爬取,且主要目标是解析js动态生成的内容
此时候,页面内容是有js/ajax动态生成的,用普通的请求页面->解析的方法就不管用了,需要借助一个类似firefox、chrome浏览器的js引擎来对页面的js代码做动态解析。
此种情况下,推荐考虑casperJS+phantomjs或slimerJS+phantomjs ,当然诸如selenium之类的也可以考虑。
3、如果爬虫是涉及大规模网站爬取,效率、扩展性、可维护性等是必须考虑的因素时候
大规模爬虫爬取涉及诸多问题:多线程并发、I/O机制、分布式爬取、消息通讯、判重机制、任务调度等等,此时候语言和所用框架的选取就具有极大意义了。
PHP对多线程、异步支持较差,不建议采用。
NodeJS:对一些垂直网站爬取倒可以,但由于分布式爬取、消息通讯等支持较弱,根据自己情况判断。
Python:强烈建议,对以上问题都有较好支持。尤其是Scrapy框架值得作为第一选择。优点诸多:支持xpath;基于twisted,性能不错;有较好的调试工具;
此种情况下,如果还需要做js动态内容的解析,casperjs就不适合了,只有基于诸如chrome V8引擎之类自己做js引擎。
至于C、C++虽然性能不错,但不推荐,尤其是考虑到成本等诸多因素;对于大部分公司还是建议基于一些开源的框架来做,不要自己发明轮子,做一个简单的爬虫容易,但要做一个完备的爬虫挺难的。
Python的较多,思路清晰操作相对简单,多参考一些 python框架开发实例l。
引用来自“让往事随风”的评论
1、如果是定向爬取几个页面,做一些简单的页面解析, 爬取效率不是核心要求,那么用什么语言差异不大。当然要是页面结构复杂,正则表达式写得巨复杂,尤其是用过那些支持xpath的类库/爬虫库后,就会发现此种方式虽然入门门槛低,但扩展性、可维护性等都奇差。因此此种情况下还是推荐采用一些现成的爬虫库,诸如xpath、多线程支持还是必须考虑的因素。
2、如果是定向爬取,且主要目标是解析js动态生成的内容
此时候,页面内容是有js/ajax动态生成的,用普通的请求页面->解析的方法就不管用了,需要借助一个类似firefox、chrome浏览器的js引擎来对页面的js代码做动态解析。
此种情况下,推荐考虑casperJS+phantomjs或slimerJS+phantomjs ,当然诸如selenium之类的也可以考虑。
3、如果爬虫是涉及大规模网站爬取,效率、扩展性、可维护性等是必须考虑的因素时候
大规模爬虫爬取涉及诸多问题:多线程并发、I/O机制、分布式爬取、消息通讯、判重机制、任务调度等等,此时候语言和所用框架的选取就具有极大意义了。
PHP对多线程、异步支持较差,不建议采用。
NodeJS:对一些垂直网站爬取倒可以,但由于分布式爬取、消息通讯等支持较弱,根据自己情况判断。
Python:强烈建议,对以上问题都有较好支持。尤其是Scrapy框架值得作为第一选择。优点诸多:支持xpath;基于twisted,性能不错;有较好的调试工具;
此种情况下,如果还需要做js动态内容的解析,casperjs就不适合了,只有基于诸如chrome V8引擎之类自己做js引擎。
至于C、C++虽然性能不错,但不推荐,尤其是考虑到成本等诸多因素;对于大部分公司还是建议基于一些开源的框架来做,不要自己发明轮子,做一个简单的爬虫容易,但要做一个完备的爬虫挺难的。
Python的较多,思路清晰操作相对简单,多参考一些 python框架开发实例l。
如果简单的爬取分析,就自己研究HttpClient获取网页,然后Jsoup解析就好了。
框架的话就楼上说的那些了