ruby - Ruby 中可用的网页抓取 gem /工具

标签 ruby html-parsing lxml scrape

<分区>

我正尝试在我正在处理的 Ruby 脚本中抓取网页。该项目的目的是展示哪些 ETF 和股票共同基金最符合值(value)投资理念。

我想抓取的一些页面示例是:

http://finance.yahoo.com/q/pr?s=SPY+Profile
http://finance.yahoo.com/q/hl?s=SPY+Holdings
http://www.marketwatch.com/tools/mutual-fund/list/V

您为 Ruby 推荐了哪些网络抓取工具,为什么?请记住,那里有成千上万的股票基金,因此我使用的任何工具都必须相当快速。

我是 Ruby 新手,但我有使用 lxml 在 Python 中抓取网页的经验 (https://github.com/jhsu802701/dopplervalueinvesting/blob/master/screen.py)。下载 5000 多只股票的页面后,lxml 可以在几分钟内将它们全部抓取。 (我记得尝试过 BeautifulSoup 但拒绝了,因为它太慢了。)

最佳答案

Ruby 中有很多可用的抓取 gem,例如 Hpricot , Nokogiri等等。我推荐 Nokogiri 来抓取静态网页。如果您正在抓取动态网页(意味着涉及按钮点击、提交表单等)。我推荐Mechanize它在内部使用 Nokogiri

关于ruby - Ruby 中可用的网页抓取 gem /工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15037392/

相关文章:

css - Sass::SyntaxError on Rails 生产预编译

ruby-on-rails - 在 Ruby 中访问 JSON 对象

mysql - Rake 任务太慢

Java解析JS生成的html元素

ruby - 方法作为 ActiveRecord `where` 中每个实例的参数

c# - 获取网页中所有 url 的列表

python - 通过 BeautifulSoup 获取属性值

python - 使用 dryscrape 和 BeautifulSoup 进行网页抓取

python - 如何使用 Python 按条件查找和删除 XML 文件(带有 namespace )中的元素

python - 如何获取倒数第二个元素?