H5W3
当前位置:H5W3 > php > 正文

【php】该选择哪个语言开发爬虫?

需要开发个采集腾讯、新浪微博的评论数据。
如果直接使用官方提供的API,会有很多数据获取不到。所以可能得自己写了。
我主要是想使用C++来开发的,其次才是PHP。在没办法的情况下,才会考虑使用python进行开发!
网上大概了解了下,很多采集程序都是使用python来开发的。因为python的网络库很多,很丰富,开发起来方便快捷。
PHP的也有个snoopy类库,C++的就不清楚了。
不知道,C++中有没有这方面的爬虫类库推荐呢?

回答

参考

C/C++ 网络爬虫

推荐Python。有requests等类库。
也有scrapy这样的框架。

python 唯一的好处就是 request 库真的很方便

我以前都是用 php 做爬虫的,现在都改用 python 了


其实用 JavaScript 也是很好的,node 或者 phantomJS

因为很多时候你不仅要把 HTML 爬下来,还要解析;而 python 的 DOM 库简直糟糕透顶;比如 BeautifulSoup,很多操作就非常不方便;相比之下,js 进行 DOM 操作就方便多了

弱弱的推荐一下 php 的 goutte

毫不犹豫golang

用python 没有原因

表示采用java,jsoup,http://www.husters.cn/ 抓爬的

  1. 有较好地html获取和解析支持。
  2. 有较好地并行控制。
  3. 方便处理异步任务。
  4. 容易开发DSL。(假如你需要用户自定义抓取路径的话。)

以前写过好几个版本的爬虫,供参考。http://niejason.sinaapp.com/?p=66

snoopy类库很久以前用过,不过感觉不是很好用。功能一般。
其实爬虫最网页请求那一块比较容易实现,也没有什么好说的。其实最主要是对请求回来的数据处理,分析。
所以我觉得用node.js会是很好的选择。

看看那位童鞋推荐下node.js有什么好的库。

node.js的jquery也不错。。。

建议用node, phamtomjs, node的jQuery, 还有jsdom, node下面很多解析html的包,非常方便

我觉得不是说选择哪个语言,主要是看开发者对哪个语言最熟悉。

如果是我的话,我会用 Node.js

Node.js 有一个 Cheerio 库,用来解析 HTML 效率十分不错。它的 API 风格是类似 jQuery 的。

啥都不说,肯定是python

需要开发个采集腾讯、新浪微博的评论数据。

目的明确了,解决的思路也不难。你的爬虫的主要功能就是

  1. 能向服务器进行通信,返回你需要页面的内容
  2. 解析页面源码,挖掘出你需要的信息
    python是一个不错的推荐,解决两个问题都有完善的库。
    比如urllib2解决http请求,lxml 解决页面源码的解析(解析成html树)。
    关键步骤就是在解析后生成的html树中,找到所需信息,需要自己完成:
    分析信息在html树中所在的位置,并告诉你的程序去对应位置(利用xpath来定位)抓信息
    写过一个python抓取douban日志名称,URL,评论数,发布时间的爬虫
    能解决基本的挖掘需要后,再来考虑如何能更快及应对大型数据,目前了解的方法有iterparse方法,多线程等。

p.s
为什么是lxml?参考lxml performance

爬虫基本上就是网页抓去+内容分析了吧。

我也建议选择类库简单丰富的语言,比如Python和Ruby应该都不错。

Ruby可以选择的有Crul,mechanize,nokogiri,hpricot等。

php里有phpQuery,语法和jquery差不多,非常的好用!

Perl
竟然没人推荐..

golang 是个不错的选择

用python吧,你会发现有很多优点。。。

每个语言都可以,基本的爬虫只要涉及到一些HTTP请求和文档解析就能做出来。
Python有Scrapy等框架,上手比较快,可以研究一下。

爬虫无非就是获取网页内容,解析内容,正则出想要的数据,其实对于网页内容获取,任何语言都能获取,注意代理服务器防封IP,并行抓取等技术,个人感觉php 获取网页内容还是不错的,至于解析网页内容,基本上都是DOM的操作,那最佳选择还是nodejs,里边的cheerio很好的解决树形结构数据。

用javascript也可以写爬虫 在云端编写和执行 源码地址:
https://github.com/ShenJianSh…

本文地址:H5W3 » 【php】该选择哪个语言开发爬虫?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址