2015-04-22 62 views
0

我從第三方網站上的網址應該是一個腳本代碼的來源,是這樣的:是否有可能獲得由腳本生成的HTML

<script src="<%= @url %>"></script> 

上面的代碼顯示了一個Web窗體。

我想獲得通過,導致該代碼的HTML代碼,並存儲到一個變量,像這樣:

html_code = get_html('<script src="<%= @url %>"></script>') 

這是可能使用的Ruby/Rails(可能使用引入nokogiri)?

+0

你想阻止代碼運行,只是查看它,或者你介意它是否運行?或者你正在尋找該代碼生成的HTML? – Dan

+0

@FelesMortis是的我正在尋找的代碼生成的HTML,我想影響到一個變量的代碼,看到我的問題,並讓我知道如果它清楚:) – medBo

+0

有兩種方式可以生成HTML(大部分)。它可以通過document.write將html(或其他數據)寫入到腳本所在的位置,在這種情況下,您可以使用javascript查看(或者如果您對此更加熟悉,則可以使用ruby/rails;另一種方式是通過修改頁面上的其他元素的html。添加/刪除/更改這很難找到,但我建議獲取頁面的HTML'$('html')。html()'然後運行腳本,然後再次獲取html和掃描差異 – Dan

回答

1

如果你在瀏覽器中使用jQuery和代碼顯示了在一個定義良好的位置,例如與特定id一個<div>那麼你可以使用瀏覽器的JavaScript控制檯抓住它:

$('#the_id').html() 

這將顯示該元素的原始HTML,假定它將其內容轉儲到ID爲the_id的元素中。你可以使用任何CSS選擇器工作。

HTML在你的文檔中的位置不可能從你的例子中看出來。 A <script>可以在文檔的任何位置添加所需的任何元素。你必須環顧四周,看看它發生了什麼。

+0

我可以使用紅寶石來做到這一點嗎?我更新了我的問題要更清楚,謝謝 – medBo

+0

技術上是的,但實際上沒有。它涉及在Ruby內運行[PhantomJS](http://phantomjs.org/)作爲[一個寶石](https://github.com/colszowka/phantomjs-gem)以及一大堆希望並祈禱你的無頭瀏覽器將以與真實客戶相同的方式行事。 Ruby本身無法理解JavaScript或模擬它運行的瀏覽器環境。 – tadman

0

將頁面加載到瀏覽器中,然後在瀏覽器中執行查看/源代碼。這會讓你查看生成的網頁,你可以找到什麼URL被放入<script>標籤。

相關問題