2011-06-18 34 views
17

Tôi đã tự hỏi điều gì sẽ là cách đạo đức nhất để tiêu thụ một số byte (386 chính xác) nội dung từ Trang web A, với một ứng dụng (ví dụ: Google App Engine) tại một số Trang web B, nhưng làm đúng , không có ý định cạo, tôi thực sự chỉ cần kiểm tra trạng thái của dịch vụ công cộng và hiện họ không cung cấp bất kỳ API nào. Vì vậy, đánh dấu trong Trang web A có một mảng JavaScript với thông tin tôi cần và có thể truy cập, giả sử cứ 5 phút một lần là đủ.Điều gì sẽ là cách đạo đức nhất để tiêu thụ nội dung từ một trang web không cung cấp API?

Mọi lời khuyên sẽ được đánh giá cao.

UPDATE:

Đầu tiên tất cả nhờ nhiều cho ý kiến ​​phản hồi. Trang web A về cơ bản là trang web của công ty hiện đang điều hành mạng lưới tàu điện ngầm công cộng của chúng tôi, vì vậy tôi đang lên kế hoạch phát triển một ứng dụng Android nhỏ miễn phí cho bất kỳ ai không chỉ có bản đồ với toàn bộ mạng và trạm của nó mà còn cập nhật thông tin về tính khả dụng của dịch vụ (và đó là các byte mà cuối cùng tôi sẽ sử dụng), v.v.

+0

Tàu điện ngầm công cộng? Tại Singapore, các nhà chức trách tàu điện ngầm đã cấm tất cả người dùng từ việc cạo thông tin của họ sau khi một nhà phát triển rất nhiều tạo ra loại ứng dụng này. – Rudy

+2

Làm thế nào tò mò, rõ ràng các quốc gia khác nhau có pháp luật khác nhau. –

+0

@Rudy, Xin vui lòng. – Pacerier

Trả lời

9

Sẽ có một số điểm rất differents của xem, nhưng hy vọng đây là một số thực phẩm cho rằng:

  1. Hãy hỏi chủ sở hữu trang web đầu tiên, nếu họ biết trước thời hạn họ ít có khả năng bị khó chịu.
  2. Nội dung trên Trang web A có thể truy cập được trên một phần công cộng của trang web, ví dụ: mà không cần đăng nhập?
  3. Nếu câu trả lời cho # 2 là nội dung công khai, thì tôi sẽ không gặp vấn đề gì vì việc cào trang web cho thông tin đó thực sự không khác biệt, sau đó trỏ trình duyệt của bạn vào trang web và tự đọc nó.
  4. Tất nhiên, câu trả lời cho # 3 phụ thuộc vào cách trang web được kiếm tiền. Nếu Trang web A cung cấp quảng cáo để tạo doanh thu cho trang web, thì có thể không phải là ý tưởng để bắt đầu tìm kiếm nội dung, vì bạn sẽ bỏ qua cách trang web kiếm tiền.

Tôi nghĩ rằng điều quan trọng nhất để làm, là nói chuyện với chủ sở hữu trang web đầu tiên, và xác định ngay từ họ nếu:

  1. Is it ok cho tôi để được cạo nội dung từ trang web của họ.
  2. Họ có API trong đường ống (chỉ đơn giản là làm nổi bật mong muốn có thể nhắc họ xem xét nó).

Chỉ quan điểm của tôi ...

+4

Tất cả các điểm tốt. Tôi muốn thêm: Đề xuất thuộc tính nguồn với liên kết. (Và nếu bạn làm điều này mà không cần xin phép, hãy làm điều đó như một vấn đề của khóa học. Và mong đợi, nếu bạn làm điều này mà không được phép, bạn có thể bị chặn cuối cùng. cũng bị chặn bởi quản trị viên.) –

+1

@TJ - Thêm điều đó như là một aswer để chúng tôi có thể upvote bạn –

+0

Một điểm bổ sung để thêm vào danh sách của bạn - cuộc thăm dò không thường xuyên như thực tế. –

2

Cập nhật (4 năm sau): Câu hỏi đặt ra đặc biệt bao trùm phía đạo đức của vấn đề. Đó là lý do tại sao câu trả lời cũ này được viết theo cách này.

Thông thường trong trường hợp này, bạn liên hệ với họ.

Nếu họ không thích, thì về mặt đạo đức bạn không thể làm điều đó (một cách hợp pháp là một câu chuyện khác, tùy thuộc vào việc cung cấp giấy phép trên trang web hay không) đăng nhập/ẩn danh hoặc những hạn chế nào khác mà họ có để truy cập. phải sử dụng dữ liệu thử nghiệm/giả mạo, v.v ...).

Nếu họ cho phép, họ có thể cung cấp API (có thể liên quan đến chi phí - sẽ tùy thuộc vào bạn để xác định số tiền đủ cho ứng dụng của bạn) hoặc hứa hẹn một số hành vi mong đợi cho bạn. được loại bỏ, hoặc bất cứ lựa chọn nào khác mà họ quyết định.

Nếu chúng cho phép nhưng chưa sẵn sàng để giúp dễ dàng hơn, thì việc cạo (với các nhược điểm khác vẫn có thể áp dụng) sẽ đúng, ít nhất là "đạo đức".

1

Tôi sẽ không chạm vào lưu để gửi email cho quản trị viên trang web, sau đó nhận được sự cho phép bằng văn bản của họ. Điều đó đang được nói - nếu bạn đang tiêu thụ nội dung nhưng không trích xuất giá trị vượt quá giá trị một người dùng sẽ nhận được khi quan sát dữ liệu bạn cần từ họ, có thể cho rằng bất kỳ yêu cầu nào của bạn sẽ không tìm thấy bạn vi phạm. Tuy nhiên, nếu bạn nhận được giá trị đáng chú ý vượt quá những gì một người dùng sẽ nhận được từ dữ liệu bạn cần từ trang web của họ - ví dụ: giả sử bạn sử dụng dữ liệu thì kết quả của bạn sẽ mang lại giá trị cho 100x người dùng trang web của riêng bạn - Tôi muốn nói bạn cần có sự cho phép rõ ràng để làm điều đó, để ngủ ngon vào ban đêm.

Tuy nhiên, tất cả những gì đã xảy ra trong miền công cộng (và bạn có thể chứng minh điều đó), hoặc dữ liệu bạn cần từ chúng là dưới một loại giấy phép mở nào đó.

Sau đó, một lần nữa, trang web không là gì nếu không có liên kết đến nội dung của người khác. Tất cả chúng ta đều chụp sau đó đăng lại nội dung trên các diễn đàn khác nhau, nói - chúng tôi đọc một bài viết trên cnn rồi nhận xét về nó trong diễn đàn trực tuyến, có thể trích dẫn bài viết và cung cấp liên kết ngược lại. Chỉ cần phụ thuộc vào cách tôi linh hoạt như thế nào và cởi mở với quản trị viên và chủ sở hữu của trang web. Nhưng thực sự, để tránh bị kiện (nếu đẩy đến để xô) Tôi muốn được phép.

+0

đó là một điểm thú vị. Cảm ơn nhiều. –

0

"không có ý định cạo" - Bạn đang có ý định cạo. =)

Những lý do duy nhất lý đạo đức dựa trên ta không nên mang nó từ trang web của họ là:

  1. Họ có thể muốn hiển thị quảng cáo hoặc thông báo bảo mật quan trọng đối với người dùng
  2. Điều này có thể thực hiện thống kê của họ không chính xác

Về mặt trang web của họ, có thể đó không phải là vấn đề. Nhưng nếu đó là:

  • Bạn có thể muốn loại bỏ số tiền tối thiểu cần thiết (ví dụ: thực hiện số lượng yêu cầu HTTP tối thiểu) và không đập máy chủ quá thường xuyên.
  • Bạn có thể không muốn tất cả các ứng dụng truy vấn trang web; bạn có thể có trang web của riêng bạn truy vấn chúng thông qua một cronjob. Điều này sẽ cho phép bạn kiểm soát tốt hơn trong trường hợp họ thay đổi định dạng của họ hoặc cho phép bạn ném lỗi "dịch vụ hiện không khả dụng" cho người dùng của mình, chỉ bằng cách thay đổi trang web của bạn; nó giới thiệu một điểm khác của thất bại, nhưng nó có thể đáng giá. Bằng cách này, nếu có lỗi, mọi người không cần cập nhật ứng dụng của họ.

Nhưng điều tốt nhất bạn có thể làm là nói chuyện với trang web, hỏi họ điều gì là tốt nhất. Họ có thể có một API ẩn mà họ sẽ cho phép bạn sử dụng, và có lẽ cũng cho phép người khác sử dụng.

1
  1. Sử dụng tiêu đề user-agent xác định dịch vụ của bạn.
  2. Kiểm tra robots.txt của họ (và kiểm tra lại theo các khoảng thời gian đều đặn, ví dụ: hàng ngày).
  3. Tôn trọng mọi số Disallow trong hồ sơ khớp với đại lý người dùng của bạn (be liberal khi diễn giải tên). Nếu không có hồ sơ cho tác nhân người dùng của bạn, hãy sử dụng hồ sơ cho User-agent: *.
  4. Tôn trọng (phi tiêu chuẩn) Crawl-delay, cho bạn biết số giây bạn nên đợi trước khi yêu cầu tài nguyên từ máy chủ lưu trữ đó một lần nữa.
Các vấn đề liên quan