2010-02-22 31 views
6

Bối cảnhLàm cách nào để đọc bộ nhớ cache của Chrome và Firefox theo lập trình trên máy Mac?

Tôi muốn truy cập bộ nhớ cache của Chrome và Firefox trong ứng dụng Cocoa của tôi. Tôi cần nhận HTML cho các trang được truy cập gần đây. Safari là một mẩu bánh - tất cả thông tin này có sẵn trong kho lưu trữ dữ liệu SQLite, nhưng không có trong Chrome và Firefox.

Vấn đề

Đối với Firefox, bộ nhớ cache là trong /Library/Caches/Firefox/Profiles/xxx.default/Cache với tên tập tin _CACHE_001_ _CACHE_002_ _CACHE_003_ và _CACHE_MAP_

Đối với Chrome, bộ nhớ cache là trong/Library/Caches/Google/Chrome/Default/cache với tên tập tin data_0 dữ liệu_1 dữ liệu_2 và data_3

Những gì tôi đã cố gắng

Bài viết duy nhất tôi có thể tìm thấy làm sáng tỏ những định dạng mà các bộ đệm này nằm trong số is here. Nó đề xuất một công cụ Cache Viewer, nhưng không giải thích làm thế nào người ta có thể làm điều này theo lập trình.

Câu hỏi

  1. Có cách nào là xây dựng lại dữ liệu này sử dụng công cụ dòng lệnh hoặc khuôn khổ Cocoa? Hoặc là mức quá thấp?

  2. Có cách nào khác để nhận được tại HTML của các trang web gần đây mà tôi không biết?

+2

Điều này có thể không thực sự hữu ích, nhưng vì cả Firefox và Chromium đều là nguồn mở, nên chắc chắn có thể giải mã định dạng mà chúng sử dụng. –

+0

OMG. Tôi không thể tin rằng tôi đã không nghĩ về điều đó! Nó sẽ là một rắc rối, nhưng đó là một kịch bản trường hợp xấu nhất khả thi. Cảm ơn bạn đã chỉ ra những gì cần phải rõ ràng với tôi! :) –

+0

Hãy nhớ rằng mặc dù bộ nhớ cache của Safari dễ đọc vào lúc này, bạn không có đảm bảo rằng nó sẽ vẫn ở cùng một vị trí và định dạng trong tương lai. –

Trả lời

1

Giải pháp duy nhất tôi có thể thấy là đề xuất của Ole ở trên, cụ thể là xem mã từ Chrome và Firefox và tìm hiểu cách mã hóa bộ nhớ cache.

Tôi đã nhận ra đây là một thách thức mã hóa khổng lồ đầy khó khăn. Tôi đang bỏ chức năng này và thử một cách đơn giản hơn.

+0

Bạn có thể viết Firefox/Chrome và sử dụng nó để hiển thị API nội bộ của họ cho ứng dụng của bạn không? Có lẽ cài đặt một plugin Firefox đọc bộ nhớ cache và viết siêu dữ liệu mà ứng dụng của bạn hiểu được? – adib

+0

Đó là một ý tưởng tuyệt vời. Nó có vẻ rất tốn thời gian, nhưng chắc chắn là con đường để đi nếu tôi muốn làm điều này. –

+0

Tiện ích mở rộng của Firefox thực sự khá đơn giản để viết. Dự án Beagle được sử dụng để làm những gì tôi tưởng tượng bạn có thể đang cố gắng: thông báo cho quá trình bên ngoài về những URL bạn đang truy cập. Có lẽ bạn có thể khai thác một số nguồn từ đây: http://beagle-project.org/Browser_Extension –

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