После просмотра вашего веб-сайта, метатег на самом деле:
<meta name="DC.Description" xml:lang="en" content="some text">
Чтобы извлечь содержимое, используйте следующий xpath:
d_x = '//meta[@name="DC.Description"]'
Кроме того, в одном и том же селекторе есть несколько метатегов. xml:lang
- это атрибут, который различает содержимое, но xpaths или css 'не обрабатывают этот тип атрибута с разделителем. Вы должны сделать это:
desc_metas = response.xpath(ds_x) #Extract only metas with description
filter_desc = []
for d in desc_metas:
filter_desc.append(d.replace('xml:lang', 'lang')) #Replacing xml:lang with lang only so that our selector can detect that
Теперь, чтобы получить описание соответствующего языка, например; 'Ан'
en_desc = None
for d in filter_desc:
d = Selector(text=d) #converting back, string to Selector
if d.xpath('//meta[@lang="en"]/@content'): #now Applying lang attribute to get the desired content.
en_desc = d.xpath('//meta[@lang="en"]/@content')