Python: получить ссылку на изображение из HTML

1

Из фрагмента html/rss, подобного этому

[...]<div class="..." style="..."></div><p><a href="..."
<img alt="" heightt="" src="http://link.to/image"
width="" /></a><span style="">[...]

Я хочу получить ссылку src изображения "http://link.to/image.jpg". Как я могу сделать это в python? Спасибо.

  • 1
    stackoverflow.com/questions/1732348/...
  • 0
    Это HTML или RSS? Это важное различие. И правильный ответ - использовать правильный парсер, я уверен, что в Python они есть.
Показать ещё 3 комментария
Теги:

4 ответа

4

lxml является инструментом для задания.

Чтобы очистить все изображения с веб-страницы, будет проще:

import lxml.html

tree = lxml.html.parse("http://example.com")
images = tree.xpath("//img/@src")

print images

Дарение:

['/_img/iana-logo-pageheader.png', '/_img/icann-logo-micro.png']

Если это был канал RSS, вы должны проанализировать его с помощью lxml.etree.

0

Использование urllib и beautifulsoup:

import urllib
from BeautifulSoup import BeautifulSoup

f = urllib.urlopen(url)
page = f.read()
f.close()          
soup = BeautifulSoup(page)
for link in soup.findAll('img'):
    print "IMAGE LINKS:", link.get('data-src') 
0

Чтобы добавить к ответу svick, попробуйте использовать парсер BeautifuSoup, он работал у меня в прошлом.

0

Возможно, вам следует начать с чтения Regex Howto руководства и часто задаваемых вопросов в StackOverflow, в котором говорится, что всякий раз, когда вы имеете дело с XML (HTML), dont используйте Regex, но, используя хорошие парсеры, и в вашем случае BeautifulSoup является одним из них.

Используя Regex, вы сделаете это, чтобы получить ссылку на свое изображение:

import re
pattern = re.compile(r'src="(http://.*\.jpg)"')
pattern.search("yourhtmlcontainingtheimagelink").group(1)
  • 1
    Упреждающее отговорка от использования регулярных выражений, мне это нравится :)
  • 0
    Что если изображение является png: я бы использовал pattern = re.compile (r'src = "(. *?)" ')
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню