我可以使用RubyonRails抓取URL的源代码吗?还是应该使用PHP


Can I scrape the source code of a URL using Ruby On Rails, or should I use PHP?

可能重复:
如何用Ruby编写web scraper?

我需要抓取我的应用程序数据库中列出的许多网站的源代码。我正在检查他们是否链接回我的网站。

是否可以使用RubyonRails,或者我应该使用PHP?

您只需获取网站列表,并通过每个网站运行curl

编辑:或者,你可以试试这个很棒的lib,简单的dom解析器(http://simplehtmldom.sourceforge.net):

<?php
require 'simple_html_dom.php';
define(MYWEBSITE, "google.com");
$html = file_get_html('http://www.google.com/');
foreach($html->find('a') as $link) {
  $url =  $link->href;
  if (!strpos($url, MYWEBSITE)) {
    // Do whatever you need to do here, we'll just simply echo out
    // the website URL that has your site URL in it.
    echo $url . " contains " . MYWEBSITE ."'n";
  }
}
?>

只是一个简单的破解,但它能完成任务。

使用ruby进行刮擦真的很简单。。很多库都支持它,但我发现最好的方法是机械化(使用nokogiri进行解析)。然而,它对cookie很聪明,可以轻松地操作表单,并具有易于使用/灵活的API。

此外,如果你不想使用css选择器之类的东西,你可以下载文件并自己解析数据(比如寻找某些字符或其他什么)。

我广泛使用了PHP和Ruby,我个人更喜欢Ruby,因为它的代码更优雅,而且代码通常更短。话虽如此,如果你是编程新手,那么对于编程经验有限的人来说,PHP可能会稍微容易一些。

我使用过Ruby和PHP来抓取网站。

我真正喜欢Ruby的一点是,你可以很容易地使你的抓取成为多线程的。通过这种方式,您可以同时运行脚本和抓取10-100个网站(PHP让它成为多线程的超级麻烦)。

我在Ruby中发现了很多很棒的抓取工具,PHP也有其他工具。

我的投票是Ruby,因为线程的易用性,你可以很快地填充数据库并发现代码的问题,而不必等待很长时间使用PHP。

RubyonRails是一个构建web应用程序的框架,而不是抓取它们。PHP是一种通常用于构建网站/应用程序的语言。

两者都可能有网络抓取模块,谷歌会告诉你它们是什么。。。

这看起来像是一篇关于使用Ruby进行抓取的不错的循序渐进的帖子:http://www.andrewsturges.com/2011/09/how-to-harvest-web-data-using-ruby-and.html

PHP会让这变得非常容易,因为curl的使用非常简单:http://www.php.net/manual/en/function.curl-exec.php

已经有一些库支持高级使用:
http://simplehtmldom.sourceforge.net/
http://electrokami.com/coding/simple-html-dom-baked-cakephp-component/

<?php
$mySite = "http://www.mysite.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER , true);
// grab URL and save data into variable
$response = curl_exec($ch);
if(stripos($response,$mySite) !== false){
    echo "site still linked";   
}
// close cURL resource
curl_close($ch);
?>