有人可以告诉我如何使用BeautifulSoup获取网页中所有图片的aboslute路径列表吗?
获取所有图像很简单。我这样做:
page_images = [image["src"] for image in soup.findAll("img")]
......但是我在获得绝对路径方面遇到了困难。有什么帮助吗?
谢谢。
答案 0 :(得分:5)
获取后必须对路径进行规范化。这可以使用urlparse.urljoin
完成。例如:
>>> urlparse.urljoin("http://google.com/some/path/", "../../img/icon.png")
'http://google.com/img/icon.png'
答案 1 :(得分: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"]