2012-06-10 2 views
1

Как использовать регулярные выражения, чтобы получить ЦСИ изображения из следующего HTML строку с помощью PythonКак использовать регулярное выражение Python для получения изображения src?

<td width="80" align="center" valign="top"><font style="font-size:85%;font-family:arial,sans-serif"><a href="http://news.google.com/news/url?sa=t&amp;fd=R&amp;usg=AFQjCNFqz8ZCIf6NjgPPiTd2LIrByKYLWA&amp;url=http://www.news.com.au/business/spain-victory-faces-market-test/story-fn7mjon9-1226390697278"><img src="//nt3.ggpht.com/news/tbn/380jt5xHH6l_FM/6.jpg" alt="" border="1" width="80" height="80" /><br /><font size="-2">NEWS.com.au</font></a></font></td>

Я пытался использовать

matches = re.search('@src="([^"]+)"',text) 
print(matches[0]) 

Но ничего не получил

+3

Что такое '@' символ должен соответствовать? В строке ввода нет такого символа. –

+3

регулярные выражения и html? – Ben

+0

http://stackoverflow.com/a/1732454/311220 – Acorn

ответ

4

Просто потерять @ в regex и будет работать

-1

Вы можете упростить свой re немного:

match = re.search(r'src="(.*?)"', text) 
+0

Он также получает файлы javascript. –

6

Вместо регулярных выражений, вы могли бы рассмотреть вопрос об использовании BeautifulSoup:

>>> from bs4 import BeautifulSoup 
>>> soup = BeautifulSoup(junk) 
>>> soup.findAll('img') 
[<img src="//nt3.ggpht.com/news/tbn/380jt5xHH6l_FM/6.jpg" alt="" border="1" width="80" height="80" />] 
>>> soup.findAll('img')[0]['src'] 
u'//nt3.ggpht.com/news/tbn/380jt5xHH6l_FM/6.jpg' 
+1

не будет красивым супом добавить много накладных расходов на решение? Теги 'img' относительно легко разбираются (и поскольку они не заключают другой текст, обычно форматируются правильно) –

Смежные вопросы