2010-08-24 87 views

回答

5

您必須在獲取路徑後對路徑進行規範化。這可以使用urlparse.urljoin完成。例如:

>>> urlparse.urljoin("http://google.com/some/path/", "../../img/icon.png") 
'http://google.com/img/icon.png' 
0

這是不使用BeautifulSoup,但更優雅(和維護良好的)LXML + pyquery

import pyquery 
from urlparse import urljoin 

def make_images_absolute(self): 
    self('img').each(lambda: self(this).attr('src', 
      urljoin(self.base_url, self(this).attr('src')))) 

url="http://lwn.net" 
pq = pyquery.PyQuery(url) 
for i in pq("img"): 
    print i.attrib["src"] 
make_images_absolute(pq) 
for i in pq("img"): 
    print i.attrib["src"]