2014-01-06 25 views
0

上午解析手動使用下面的代碼所有標籤不是用Python

request = urllib2.Request(urllink, None, {'User-Agent':'Mosilla/5.0 (\ 
      Macintosh; Intel\ 
      Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) \ 
      Chrome/20.0.1132.57 Safari/536.11'}) 
urlfile = urllib2.urlopen(request) 
page = urlfile.read() 
soup = BeautifulSoup(page) 

上午發生urllink顯示HTML網頁。這裏的問題是我不從,

page = urlfile.read() 

獲取整個網頁,我可以看到許多HTML內容,如果我使用「保存網頁爲選擇」保存的頁面。後來我才知道網頁在內部發送了很多請求。我怎樣才能得到整個頁面或我可以得到這些請求的網址?

請幫我

回答

1

當你請求的URL,它返回的該頁面的源代碼。也許該頁面包含img,css,js文件(我們稱之爲這些靜態文件)。你的瀏覽器將呈現html,它將根據這些靜態文件的URL來請求資源。如<img src="/static/a.png" />,那麼瀏覽器將請求​​獲取img。與css和js文件相同。

更重要的是,現在大多數網站都是web2.0,這意味着我們可以使用ajax來異步請求資源。例如$.ajax({url:'/xxx' ...})(jquery)。而且js也可以修改dom樹,比如添加一個新的標籤。

所以,如果你想像瀏覽器那樣得到所有的東西。你需要解析html或重寫javascript的javascript代碼來完成這個任務。或者,如果您有瀏覽器內核(如webkit),則可以使用與瀏覽器相同的功能。如ghost.py,selenium capserjs, phantomjs

+0

Ghost.py有一些相當差的支持。你有其他的選擇嗎? – User

相關問題