Получить список абсолютных путей всех изображений на странице, используя BeautifulSoup - PullRequest
0 голосов
/ 24 августа 2010

Может ли кто-нибудь показать мне, как получить список приблизительных путей для всех изображений на веб-странице, используя BeautifulSoup?

Получить все изображения просто.Я делаю это:

page_images = [image["src"] for image in soup.findAll("img")]

... но у меня возникают трудности с получением абсолютных путей.Любая помощь?

Спасибо.

Ответы [ 2 ]

5 голосов
/ 24 августа 2010

Вам придется нормализовать пути после их получения. Это можно сделать с помощью urlparse.urljoin. Например:

>>> urlparse.urljoin("http://google.com/some/path/", "../../img/icon.png")
'http://google.com/img/icon.png'
0 голосов
/ 24 августа 2010

Это не использует 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"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...