2010-08-24 11 views

Répondre

5

Vous devrez normaliser les chemins après les avoir obtenus. Cela peut être fait en utilisant urlparse.urljoin. Par exemple:

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

Ce n'utilise pas BeautifulSoup, mais le lxml + pyquery plus élégant (et bien entretenu):

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"]