各种语言写网络爬虫有什么优点缺点?
3个回答
展开全部
我用 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++ 我感觉写个模块之类的更加适合。对于一个爬虫系统来说,下载和内文解析只是基本的两个功能。真正好的系统还包括完善的任务调度、监控、存储、页面数据保存和更新逻辑、排重等等。爬虫是一个耗费带宽的应用,好的设计会节约大量的带宽和服务器资源,并且好坏差距很大。
最开始使用 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++ 我感觉写个模块之类的更加适合。对于一个爬虫系统来说,下载和内文解析只是基本的两个功能。真正好的系统还包括完善的任务调度、监控、存储、页面数据保存和更新逻辑、排重等等。爬虫是一个耗费带宽的应用,好的设计会节约大量的带宽和服务器资源,并且好坏差距很大。
展开全部
各种语言写网络爬虫都有各自的优点和缺点。以下是一些常见的语言和它们的特点:1. Python:Python是一种简单易学的编程语言,拥有丰富的第三方库和工具,如BeautifulSoup和Scrapy,可以方便地进行网页解析和数据提取。Python还具有良好的跨平台性和可移植性。2. Java:Java是一种广泛应用于企业级开发的编程语言,具有强大的性能和稳定性。Java拥有丰富的网络编程库和框架,如Jsoup和HttpClient,可以方便地进行网页解析和数据提取。3. JavaScript:JavaScript是一种用于前端开发的脚本语言,可以直接在浏览器中执行。通过使用浏览器自带的开发者工具,可以方便地进行网页解析和数据提取。但是,JavaScript编写的爬虫只能在浏览器环境中运行,无法在服务器端进行批量处理。4. PHP:PHP是一种广泛应用于Web开发的脚本语言,具有丰富的网络编程库和框架,如Goutte和Curl,可以方便地进行网页解析和数据提取。PHP还具有良好的跨平台性和可移植性。总的来说,不同的语言适用于不同的场景和需求。选择合适的语言取决于项目的规模、性能要求、开发经验和团队技术栈等因素。八爪鱼采集器是一款功能全面、操作简单、适用范围广泛的互联网数据采集器。如果您需要采集数据,八爪鱼采集器可以为您提供智能识别和灵活的自定义采集规则设置,帮助您快速获取所需的数据。了解更多八爪鱼采集器的功能与合作案例,请前往官网了解更多详情
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编写网络爬虫的语言,每种都有其优缺点。具体如下:
1. Python:Python是一种灵活且强大的编程语言,常被用于网络爬虫。其优点在于语法简单,易于学习,拥有强大的库和社区支持。Python的缺点可能在于对不规范HTML的适应能力相对较弱,这可能需要额外的处理和判断。
2. Java:Java同样可用于编写网络爬虫,且具有良好的稳定性和广泛的支持。然而,Java的缺点在于其相对繁琐,对于处理HTML和XML文档,可能没有Python或Go那么简单易用。
3. Go:Go是一种由Google开发的开源编程语言,其优势在于具有良好的可读性和并发性,非常适合于网络爬虫的编写。Go的缺点可能在于其在Web开发方面不如其他语言流行。
4. C++:C++同样可以用于编写网络爬虫。其优点在于具有高效的性能和丰富的库支持。然而,C++的学习曲线相对较陡峭,且对于一些开发者来说,其编码和调试过程可能较为复杂。
综上所述,不同的编程语言各有其优缺点,适用于不同的应用场景。在选择编写网络爬虫的语言时,需要根据项目的具体需求、开发者的技能以及可用的资源进行权衡和选择。
1. Python:Python是一种灵活且强大的编程语言,常被用于网络爬虫。其优点在于语法简单,易于学习,拥有强大的库和社区支持。Python的缺点可能在于对不规范HTML的适应能力相对较弱,这可能需要额外的处理和判断。
2. Java:Java同样可用于编写网络爬虫,且具有良好的稳定性和广泛的支持。然而,Java的缺点在于其相对繁琐,对于处理HTML和XML文档,可能没有Python或Go那么简单易用。
3. Go:Go是一种由Google开发的开源编程语言,其优势在于具有良好的可读性和并发性,非常适合于网络爬虫的编写。Go的缺点可能在于其在Web开发方面不如其他语言流行。
4. C++:C++同样可以用于编写网络爬虫。其优点在于具有高效的性能和丰富的库支持。然而,C++的学习曲线相对较陡峭,且对于一些开发者来说,其编码和调试过程可能较为复杂。
综上所述,不同的编程语言各有其优缺点,适用于不同的应用场景。在选择编写网络爬虫的语言时,需要根据项目的具体需求、开发者的技能以及可用的资源进行权衡和选择。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询