Получение первого изображения из HTML с использованием Python / Django - PullRequest
3 голосов
/ 01 июня 2011

Я получаю кучу html из службы и немного ее разбираю. Я ищу способ получить ссылку из первого тега изображения.

Нечто подобное, как этот код JQuery:

var imagelink = $('img:first', feed.content).attr('src');

Но, конечно, используя только Python / Django (сервер работает на движке приложений Google). Я скорее не использую никаких других библиотек, просто чтобы получить простую ссылку.

Ответы [ 3 ]

8 голосов
/ 01 июня 2011

Вы можете использовать BeautifulSoup, чтобы сделать это:

http://www.crummy.com/software/BeautifulSoup/

Это парсер XML / HTML. Таким образом, вы передаете необработанный HTML, а затем можете искать его по определенным тегам / атрибутам и т. Д.

что-то вроде этого должно работать:

tree = BeautifulSoup(raw_html)
img_link = (tree.find('img')[0]).attr['src']
3 голосов
/ 11 ноября 2012

Это именно то, что я ищу.На самом деле настоящий код выглядит так:

tree = BeautifulSoup(raw_html)
img_link = tree.find_all('img')[0].get('src')

Отлично работает!спасибо Тимми-Омахони

0 голосов
/ 02 июня 2011

Если я еще разберу html, я, вероятно, загляну в одну из предложенных библиотек.Но сейчас я решил это следующим образом:

   startImgPos = post.find('<img', 0, len(post)) + 4
    if(startImgPos > -1):
        endImgPos = post.find('>', startImgPos, len(post))
        imageTag = post[startImgPos:endImgPos]
        startSrcPos = imageTag.find('src="', 0, len(post)) +5
        endSrcPos = imageTag.find('"', startSrcPos , len(post)) 
        linkTag = imageTag[startSrcPos:endSrcPos]
        r['linktag'] = linkTag

Я улучшу это позже, но пока это помогает.Не стесняйтесь предлагать больше идей / улучшений для приведенного выше кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...