Переменная справки Python Trim в одинарной и двойной скобках - PullRequest
0 голосов
/ 01 марта 2019

Мои коды 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 ]

0 голосов
/ 01 марта 2019

Вы должны использовать python regexp .Вот пример из интерпретатора 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
0 голосов
/ 01 марта 2019

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

>>> 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?['\"]([^'\"]+)['\"]")]

...