Из фрагмента 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? Спасибо.
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
.
Использование 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')
Чтобы добавить к ответу svick, попробуйте использовать парсер BeautifuSoup, он работал у меня в прошлом.
Возможно, вам следует начать с чтения Regex Howto руководства и часто задаваемых вопросов в StackOverflow, в котором говорится, что всякий раз, когда вы имеете дело с XML (HTML), dont используйте Regex, но, используя хорошие парсеры, и в вашем случае BeautifulSoup является одним из них.
Используя Regex, вы сделаете это, чтобы получить ссылку на свое изображение:
import re
pattern = re.compile(r'src="(http://.*\.jpg)"')
pattern.search("yourhtmlcontainingtheimagelink").group(1)