2013-02-23 36 views
10

Tôi đang cố gắng để xóa các trang web trong tập lệnh Ruby mà tôi đang làm việc. Mục đích của dự án là cho thấy ETF và quỹ tương hỗ cổ phiếu nào tương thích nhất với triết lý đầu tư giá trị.Đá quý/công cụ tìm kiếm trang web có sẵn trong Ruby

Một số ví dụ về trang Tôi muốn cạo là:

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 

web gì cụ cào để bạn đề nghị cho Ruby, và tại sao? Hãy nhớ rằng có hàng ngàn quỹ cổ phiếu trên mạng, vì vậy bất kỳ công cụ nào tôi sử dụng đều phải nhanh chóng hợp lý.

Tôi mới dùng Ruby, nhưng tôi có kinh nghiệm sử dụng lxml để xóa các trang web bằng Python (https://github.com/jhsu802701/dopplervalueinvesting/blob/master/screen.py). Một khi các trang trên 5000+ cổ phiếu được tải xuống, lxml có thể cạo tất cả chúng chỉ trong vài phút. (Tôi nhớ đã thử BeautifulSoup nhưng từ chối vì nó quá chậm.)

+1

Tài chính Yahoo thực sự có nhiều API có sẵn, bạn nên sử dụng một trong các API đó. – pguardiario

Trả lời

22

Có quá nhiều scraping gems có sẵn trong Ruby như Hpricot, Nokogiri và rất nhiều. Tôi khuyên bạn nên Nokogiri để cạo static web pages. Nếu bạn đang cạo dynamic web pages (có nghĩa là liên quan đến việc nhấp vào nút, gửi biểu mẫu, v.v.). Tôi khuyên bạn nên sử dụng Mechanize để sử dụng nội bộ Nokogiri.

+0

Hpricot không còn có người bảo trì nữa. Tôi sẽ khuyên bạn nên sử dụng Nokogiri :) – Jake88

Các vấn đề liên quan