Đã sửa đổi (câu hỏi được làm rõ)Tôi cần phải xóa dữ liệu khỏi trò chơi facebook - sử dụng ruby
Tôi đã dành một vài ngày để tìm cách xóa thông tin cụ thể khỏi trò chơi facebook; tuy nhiên, tôi đã chạy vào tường gạch sau bức tường gạch. Tốt nhất là tôi có thể nói, vấn đề chính là như sau. Tôi có thể sử dụng công cụ kiểm tra phần tử của Chrome để tìm html theo cách thủ công mà tôi cần - nó xuất hiện ẩn bên trong khung nội tuyến. Tuy nhiên, khi tôi cố gắng và cạo iframe đó, nó là sản phẩm nào (trừ tài sản):
<iframe id="game_frame" name="game_frame" src="" scrolling="no" ...></iframe>
Đây là cùng một đầu ra mà tôi thấy nếu tôi sử dụng một trình duyệt "Xem mã nguồn trang web" công cụ. Tôi không hiểu tại sao tôi không thể thấy dữ liệu trong khung nội tuyến. Câu trả lời KHÔNG phải là nó được AJAX thêm vào sau đó. (Tôi biết rằng cả hai vì "Xem nguồn trang" có thể đọc dữ liệu được thêm bởi Ajax và cũng vì tôi đã b/c tôi đã đợi cho đến sau khi tôi có thể xem trang dữ liệu trước khi cạo nó và nó vẫn không có).
Điều này có đang xảy ra do việc cạo màn hình chống vi-rút của Facebook và nếu có cách nào đó xung quanh nó? Hay tôi chỉ thiếu một cái gì đó. Tôi lập trình bằng ruby và tôi đã thử nokogiri, rồi cơ giới hoá, rồi capybara mà không thành công.
Tôi không biết liệu nó có tạo ra sự khác biệt hay không, nhưng dường như với iframe là dữ liệu của nó bằng cách sử dụng tham chiếu "game_frame" của khung nội tuyến có vẻ là đoạn html xuất hiện trước đó trong tài liệu:
<form id="hidden_login_form_1331840407" action="" method="POST" target="game_frame">
<input type="hidden" name="signed_request" autocomplete="off" value="v6kIAsKTZa...">
...
</form>
gốc câu hỏi
tôi đã viết một chương trình ruby có sử dụng nokogiri để trích xuất dữ liệu từ HTML một trò chơi facebook của. Hiện tại, tôi nhận được HTML bằng cách sử dụng công cụ "kiểm tra phần tử" của chrome và tôi lưu nó vào một tệp và phân tích cú pháp từ đó. Tuy nhiên, tôi thực sự muốn có thể truy cập thông tin từ bên trong ruby. Ví dụ, tôi sẽ vượt qua chương trình tên trang "www.gamename.com/...?id=12345" và nó sẽ đăng nhập vào facebook, đi đến trang đó và loại bỏ dữ liệu. Hiện tại, nếu tôi thử điều đó, nó không hoạt động vì tôi được chuyển hướng đến trang đăng nhập của facebook. Làm thế nào tôi có thể vượt qua màn hình đăng nhập để truy cập (các) trang mà tôi cần?
Tôi muốn thực hiện việc này bằng mã nokogiri mà tôi đã viết; tuy nhiên, nếu tôi phải viết lại nó bằng cách sử dụng cái gì khác. Hiện tại, chương trình là một chương trình độc lập - không phải là chương trình đường ray - nhưng tôi có thể thay đổi điều đó. Tôi đã thấy một số thông tin có thể chỉ cho tôi theo hướng của Omniauth nhưng tôi không chắc chắn đó là những gì tôi đang tìm kiếm và nó cũng có vẻ rất phức tạp. Tôi hy vọng có một giải pháp đơn giản hơn.
Cảm ơn
Mặc dù tôi không thể có được webkit để làm việc b/c của các vấn đề xây dựng các cửa sổ đá quý, tôi đã có thể sử dụng Capybara để lấy thông tin tôi cần. Điểm dính lớn nhất là vì thông tin tôi cần được chứa trong một khung, nó không xuất hiện trong HTML cho trang chính. Tuy nhiên, cuối cùng tôi đã nhận ra rằng nếu tôi sử dụng phương pháp within_frame, tôi sẽ có thể truy cập thông tin trong khung và điều này đã hiệu quả. –