2013-12-08 2 views
0

Я пытаюсь очистить информацию об изображении из Интернета, и мне интересно, есть ли способ извлечь имя файла изображения. Например, если следующее выражение HTML хранится в источнике,извлечение имени файла изображения из Интернета

<img src=http://www.adbongo.com/wp-content/uploads/2013/09/digital-bongo.jpg>, 

Я хочу, чтобы извлечь digital-bongo.jpg часть.

Спасибо,

+0

При использовании HTML-парсер? Конечно, я бы не использовал регулярные выражения. –

+0

Хм ... это может быть лучшая идея ... спасибо. –

+0

Возможно ли, что запись может быть просто ''? или как насчет ''? если так, тогда 'src = [" ']? (?:. */| /)? (. * (?: png | jpg | gif)) (?: \ 1)?. *> ' – gillyspy

ответ

2
import os 
>>> path,file_=os.path.split('http://www.adbongo.com/wp-content/uploads/2013/09/digital-bongo.jpg') 
>>> file_ 
'digital-bongo.jpg' 
+0

...' путь, файл'? никогда не видел такого выражения раньше ... интересный –

+0

отлично! Большое вам спасибо! :) –

+0

Файл с надписью - это зарезервированное слово. Вместо этого следует использовать file_ или другое имя переменной. изменение составляет менее 6 символов, которые SO не разрешает. – Bufke

0

Использование BeautifulSoup. Это потянет все ссылки; .jpg, .gif, .png и т.д. Вы можете использовать дополнительные кодовые разработки, чтобы получить только JPG или GIF или независимо ...

import urllib2 
from bs4 import BeautifulSoup 

url1 = "http://www.thrashermagazine.com" 
content1 = urllib2.urlopen(url1).read() 
soup = BeautifulSoup(content1) 
for link in soup.findAll('img'): 
    print link.get('src') 
### or alternatively ### 
for link in soup.findAll('img'): 
    stuff = link.get('src') 
    if '.jpg' in stuff: 
     print stuff   #This will only print results with .jpg 

* Просто поместите свой URL там. Я использовал это в качестве примера.

0

Имя источник HTML содержание htmlcontent, а затем использовать LXML разобрать страницу:

>>> from lxml import etree 
>>> html = etree.HTML(htmlcontent) 
>>> for node in html.xpath('//img/@src'): 
...  print(node.text.rsplit('/', 1)[1]) 
Смежные вопросы