2011-03-05 74 views
1

我認爲這是一個真正具有挑戰性的!刮網生成的Javascript

我爲我的當地足球聯盟www.rdyfl.co.uk編寫了一個網站,其中包含FA全職系統的javascript代碼片段,我們生成我們的燈具,鏈接表格燈具最近的結果等。

對於我想添加到網站中的另一個功能,我需要爲每個年齡組和分部刮'即將出現的燈具',但是當我檢查源時,我有兩個問題。

  1. 燈具內容由javascript生成,因此我需要看到生成的源代碼,而不僅僅是源代碼。

  2. 當我使用Firefox查看生成的源代碼時,團隊名稱實際上是進一步的javascript鏈接,而不是名稱本身。

我基本上想以某種方式定期下載fixtures然後寫入mysql數據庫?

我問過F.A.,他們沒有更多的選項可用來訪問數據?

從來沒有編碼刮刮纔可以任何人指向我一個簡單的解決方案或沒有人喜歡challange?

+1

使用Firebug或Dragonfly在頁面加載時檢查網絡流量。其中一個請求將是HTML-AJAX加載或JSON數據被拉入。找出它是哪個,數據如何表示以及複製提取數據的邏輯。 (好的問題,但答案太不確定。) – mario 2011-03-05 22:00:06

回答

-1

由JavaScript產生的廢棄內容具有挑戰性。 AFAIK你需要使用AJAX來做到這一點。希望這些內容有一些你可以用jQuery或者至少一些id來獲取的CSS。你有沒有可以拿到的身份證件或課程?

+1

AJAX? jQuery的?真?!這是一個特定的網站。不需要啓動瀏覽器來解析數據,只需要對JS進行反向工程並從中提取數據(應該採用一致的格式)。至於CSS,視覺渲染幾乎不會相關。 – Quentin 2011-03-05 21:45:13

+0

當我正在編寫顯示代碼snippits結果的網站時,我可以將所需的部分放在一個名爲'fixtures'的div中,例如? – bagshawa 2011-03-05 21:51:53

0

最新版本的OutWit Hub在動態內容上做得很好。被智謀所挖掘的來源提取鏈接,圖像,文檔和表格以及文本是更新後的DOM。你當然可以通過這些工具來抓住你所需要的東西。 自定義刮板仍然應用於版本1.0.3中的靜態源,但版本1.1.x(仍處於測試版)將提供靜態源和動態修改的DOM之間的選擇。

+0

哇,我對OutWit印象非常深刻,它可以做我想做的事情,雖然我真的想上傳一個腳本到我的服務器,然後自動每週將自己的數據發送到MySQL數據庫? – bagshawa 2011-03-07 13:01:25

1

,幷包含JavaScript代碼片段

=>使用的網絡瀏覽器呈現的JavaScript。這種方法適用於所有網站。

您也可以對JS進行逆向工程並從中提取數據,但這隻有在您需要僅從少數幾個網站獲取數據或需要超高性能時纔有意義。否則工作太多。

基於瀏覽器的抓取的好解決方案是Watir,Watin,Selenium和iMacros。