Переменная справки Python Trim в одинарной и двойной скобках

Мои коды Scrapy возвращают мне текст -

<img src="//d30v2pzvrfyzpo.cloudfront.net/uk/images/restaurants/65115.gif" itemprop="image" alt="Gourmet Sushi" width="100" height="100" onerror="this.onerror = null;this.src = '//dy3erx8o0a6nh.cloudfront.net/images/serp/serp_default_logo.svg';">

Как обрезать его от src="// в ",

Я очень новичок в Python.

2 ответа

Вы должны использовать регулярное выражение Python. Вот пример из интерпретатора Python. Попробуйте и примите, если это соответствует вашим потребностям.

>>> import re
>>> s = '<img src="//d30v2pzvrfyzpo.cloudfront.net/uk/images/restaurants/65115.gif" itemprop="image" alt="Gourmet Sushi" width="100" height="100" onerror="this.onerror = null;this.src = \'//dy3erx8o0a6nh.cloudfront.net/images/serp/serp_default_logo.svg\';">'
>>> pattern = re.compile(r'<img\s+src="//([^"]+)".*')
>>> for i in pattern.findall(s):
...     print(i)

d30v2pzvrfyzpo.cloudfront.net/uk/images/restaurants/65115.gif

Проверьте этот фрагмент. Вы можете применить регулярные выражения к селекторам:

>>> from scrapy import Selector
>>> txt = """<img src="//d30v2pzvrfyzpo.cloudfront.net/uk/images/restaurants/65115.gif" itemprop="image" alt="Gourmet Sushi" width="100" height="100" onerror="this.onerror = null;this.src = '//dy3erx8o0a6nh.cloudfront.net/images/serp/serp_default_logo.svg';">"""
>>> sel = Selector(text=txt)
>>> sel.re("src\s?=\s?['\"]([^'\"]+)['\"]")
[u'//d30v2pzvrfyzpo.cloudfront.net/uk/images/restaurants/65115.gif', u'//dy3erx8o0a6nh.cloudfront.net/images/serp/serp_default_logo.svg']

Итак, и тогда вы можете сделать [response.urljoin(url) for url in sel.re("src\s?=\s?['\"]([^'\"]+)['\"]")]

Другие вопросы по тегам