2012-06-12 50 views
1

我進入了一個項目,我處理解析網頁的HTML。所以,我拿着我的blog(博客博客 - 動態模板)並試圖閱讀它的內容。不幸的是,我沒有看到博客網頁的「實際」來源。無法找到我的博客的確切源代碼

這是我觀察到:

  1. 我在我的博客的文章隨機點擊view source,並試圖找到其中的內容。我找不到任何東西。這是所有的JavaScript。

  2. 因此,我將網頁保存到我的筆記本電腦,並再次檢查源代碼,這次我找到了內容。

  3. 我還在瀏覽器中使用developers tools檢查了源代碼,並再次找到它中的內容。現在

  4. ,我嘗試了蟒蛇的方式

    import urllib 
    from bs4 import BeautifulSoup 
    
    soup = BeautifulSoup(urllib.urlopen("my-webpage-address")) 
    print soup.prettify() 
    

    我甚至沒有發現在它的HTML代碼的內容。

最後,爲什麼我無法找到在案例1的源代碼的內容,4

我應該如何得到實際的HTML代碼?我希望聽到任何可以完成這項工作的Python庫。

+0

你必須解析JavaScript,這有其他含義。 –

回答

1

內容通過JavaScript加載(AJAX)。它不在「來源」中。

在步驟2中,您正在保存產生的頁面,而不是原始源代碼。在第3步中,您會看到瀏覽器呈現的內容。

步驟1和步驟4「不起作用」,因爲您正在獲取頁面的源代碼(不包含內容)。您需要真正運行JavaScript,這對於屏幕抓取工具來說並不容易。

+0

那麼,我應該如何精確提取我寫入的內容呢? – Surya

+1

@Surya:你需要搜索一個「無頭瀏覽器」框架或lib,它可以像瀏覽器一樣呈現頁面,包括javascript。 Phantomjs或ghost或casperjs – jdi

+1

或者,如果您只需擁有原始內容就可以了,那麼您可以通過使用適當的獲取或發佈數據擊打ajax端點來自己發出ajax請求。 –

相關問題