讲师中心 微信公众号
AI工具推荐 视频效率加速

各种语言写网络爬虫有什么优点缺点?

大杰酱_4695

大杰酱_4695

发布时间:2016-06-06 16:42:06

|

2431人浏览过

|

来源于php中文网

原创

现在好像很多人在用python
但也看到了PHP,JAVA,C++等等。
本人以上各种语言省慬皮毛。
该用那种语言开发爬虫呢?

OpenJDK 24
OpenJDK 24

OpenJDK 24 Windows x64 官方参考实现(24+36),适合 Windows 环境进行 Java 开发、编译、运行和版本兼容性验证。

下载

回复内容:

谢邀!
我用 PHP 和 Python 都写过爬虫和正文提取程序。
最开始使用 PHP 所以先说说 PHP 的优点:
1.语言比较简单,PHP 是非常随意的一种语言。写起来容易让你把精力放在你要做的事情上,而不是各种语法规则等等。
2.各种功能模块齐全,这里分两部分:
1.网页下载:curl 等扩展库;
2.文档解析:dom、xpath、tidy、各种转码工具,可能跟题主的问题不太一样,我的爬虫需要提取正文,所以需要很复杂的文本处理,所以各种方便的文本处理工具是我的大爱。;
总之容易上手。

缺点:
1.并发处理能力较弱:由于当时 PHP 没有线程、进程功能,要想实现并发需要借用多路服用模型,PHP 使用的是 select 模型。实现其来比较麻烦,可能是因为水平问题我的程序经常出现一些错误,导致漏抓。

再说说 Python:
优点:
1.各种爬虫框架,方便高效的下载网页;
2.多线程、进程模型成熟稳定,爬虫是一个典型的多任务处理场景,请求页面时会有较长的延迟,总体来说更多的是等待。多线程或进程会更优化程序效率,提升整个系统下载和分析能力。
3.GAE 的支持,当初写爬虫的时候刚刚有 GAE,而且只支持 Python ,利用 GAE 创建的爬虫几乎免费,最多的时候我有近千个应用实例在工作。

缺点:
1.对不规范 HTML 适应能力差:举个例子,如果一个页面里面同时有 GB18030 字符集的中文和 UTF-8 字符集的中文,Python 处理起来就没有 PHP 那么简单,你自己需要做很多的判断工作。当然这是提取正文时的麻烦。

Java 和 C++ 当时也考察过,相对脚本语言比较麻烦,所以放弃。

总之,如果开发一个小规模的爬虫脚本语言是个各方面比较有优势的语言。如果要开发一个复杂的爬虫系统可能 Java 是个增加选项, C++ 我感觉写个模块之类的更加适合。对于一个爬虫系统来说,下载和内文解析只是基本的两个功能。真正好的系统还包括完善的任务调度、监控、存储、页面数据保存和更新逻辑、排重等等。爬虫是一个耗费带宽的应用,好的设计会节约大量的带宽和服务器资源,并且好坏差距很大。 update:2016-02-12
curl http://www.topit.me/|grep -P "http:[^>]*?(jpg|gif)" -o|xargs wget
这就是一个正则搜索url中以http开头 jpg或gif结尾的字符串,使用wget下载的例子

2015-02-22 原答案:
写过一个爬图片的程序,使用的shell,加到crontab里面
大概是curl | grep | wget 一句话
是不是更简单? 反对 @Kenneth ,他见过的爬虫太少了

首先取决于目的

如果是一个站点,单一目的,用习惯的语言写吧,学别的语言用的时间都够重构两遍的了。
如果是有100左右的站点,做个框架,把你的爬虫管理起来,比起怎么写更重要。
ok,以上两个都是 “手动” 写模板的(当然,我们会有一些小插件等辅助工具)。手动写模板的好处是:当站点不多的时候——快,灵活。在这样的场景和目的下,选择你习惯的语言,有最多页面解析和 HTTP 请求支持的库的语言最好。比如 python,java。
注意,这么选择的唯一原因是启动成本高于编写成本

当你面临的是1000个站点这个量级的时候,可能你需要编写一个模板生成器,比如 Kimono : Turn websites into structured APIs from your browser in seconds
当你面临的是 1w 个站点以上,但是是同一类型的站点,可能你需要自动模板挖掘。
在这个阶段,算法更重要,所以代码编写的便利程度决定你的选择。当然,当算法稳定之后,就变成下面那个问题了。

当你面临的是每天几十亿的网页,来一次全量计算算一周,每个页面需要提取标题,主图,发布时间,网页分块,页面价值。不可能有人给他们写“脚本”,配模板。大量的建树,分词,机器学习,打分,follow 链接质量预测,筛选。占用大量的计算。
这个阶段,计算速度就非常重要了,除非你能说服老大,给你加几千台机器。相对于这样的需求,重新编写所有基础组件都可以。语言的选择就会选择执行速度快的了。

需要说明的一点是,灵活度,或者说抽取准确性,从上到下是依次递减的。PM也不会要求你能对几百亿的网站准确抽取每个字段对吧。


最后说一下抓取的问题。调度抓取对于每个爬虫都是必要的,但却没什么好说的,不同量级自然有不同的做法,但是这样的系统一般目的明确,少包依赖,不需要你不断修改。并且在架构中,往往可以是独立组件,和下游是不同语言都行,爱用什么写用什么写。。
对于机房带宽来说,下行基本是没人用的,只要你和对方网站愿意,抓取速度不是瓶颈。反而,计算对方压力,筛选重复,高质链接更重要。而这又反过来带来了计算的压力。 爬虫这种应用,看的不是单机的代码执行速度,看的是开发效率和工具便捷性。所以语言越简单越好。 就像 @kenneth 所说的。开发效率很重要。因为爬虫的具体代码得根据网站不同而修改的,而Python这种灵活的脚本语言特别适合这种任务。
同时Python还有强大的爬虫库比如Scrapy。 用Java写过,语言笨重,所建立的数据模型的任何修改都会导致代码大量变动,所以有些麻烦。
不过有个项目的一部分底层工具是爬网页,再封装一个业务层出来。业务厚重到这种程度,用Java就很舒服了。 这个要看你的具体业务吧。以前为了一个爬虫任务,被爬的对象全是动态渲染的(某博就是这样丧心病狂),于是就要找一个无界面浏览器,经过选择PhantomJS最合适,所以就采用了JavaScript。 没人说下nodejs么?配合cheerio 简单方便,一般简单用用够了。天生异步,爬起来也很快。 python. 爬虫模块最丰富. 用R语言实现呢?

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

相关专题

更多
剧云AI短剧创作教程合集
剧云AI短剧创作教程合集

本专题聚焦剧云AI短剧创作,讲解从短剧灵感、梗概、全局大纲到分集、分场和正文的完整流程及节奏设计方法。

0

2026.10.14

剧云AI剧本创作零基础入门
剧云AI剧本创作零基础入门

本专题系统讲解剧云AI剧本创作流程,涵盖灵感、梗概、大纲、分场与正文生成,帮助新手快速完成首个中文剧本项目。

0

2026.10.14

VibeKnow文档转视频操作指南
VibeKnow文档转视频操作指南

本专题讲解VibeKnow上传Word、TXT、Markdown等材料生成视频的方法,覆盖内容解析、脚本组织、画面生成与成片检查。

0

2026.10.14

VibeKnow知识视频制作与导出详解
VibeKnow知识视频制作与导出详解

本专题整理VibeKnow从注册、素材上传、AI生成到预览导出的完整操作,帮助新手快速制作第一条知识讲解视频。

0

2026.10.14

二狗PPT大纲编辑实操指南
二狗PPT大纲编辑实操指南

本专题聚焦二狗PPT结构化大纲的生成和修改,讲解标题、正文、目录、页数与页面顺序的调整方法,提升汇报逻辑和内容完整性。

0

2026.10.14

二狗PPT文档转PPT全教程
二狗PPT文档转PPT全教程

本专题讲解二狗PPT解析Word、PDF、Excel和PPT资料的方法,涵盖文件上传、内容提取、大纲整理、异常处理与转换后校对。

0

2026.10.14

讯飞绘文全功能使用教程
讯飞绘文全功能使用教程

本专题系统整理讯飞绘文官网入口、注册登录、工作台及内容创作流程,帮助用户熟悉常用功能,快速完成首篇图文内容。

0

2026.10.14

讯飞绘文AI写作与文案生成合集
讯飞绘文AI写作与文案生成合集

本专题聚焦讯飞绘文AI写作、提纲生成、文章改写和文案润色,覆盖从主题输入到成稿优化的关键操作与实用技巧。

0

2026.10.14

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

100

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn