У меня есть следующая структура HTML:
<ul>
<li>
<div>
<h3>TheFirst</h3>
</div>
<div class='LastDiv'>TheLast</div>
</li>
<li>
<div>
<h3>TheSecond</h3>
</div>
<div class='LastDiv'>TheLast</div>
</li>
<li>
<div>
<h3>TheNew</h3>
</div>
<div class='LastDiv'>TheLastNew</div>
</li>
</ul>
Что я пытаюсь сделать здесь, это извлечь из этой структуры следующие данные:
{
'TheLast': ['TheFirst', 'TheSecond'],
'TheLastNew': ['TheNew']
}
Что я делаю, это следующее:
data = {}
list = response.css('ul li').extract()
for li in list:
data[li.css('div.LastDiv::text')].append(li.css('div > h3::text'))
print(data)
Но я продолжаю получать эту ошибку:
AttributeError: у объекта 'str' нет атрибута 'css'
Есть ли более быстрый способизвлечь эти данные в таком наборе?
список значения =
['<li>\r\n <div>\r\n <h3>TheFirst</h3>\r\n </div>\r\n <div class="LastDiv">TheLast</div>\r\n </li>', '<li>\r\n <div>\r\n <h3>TheSecond</h3>\r\n </div>\r\n <div class="LastDiv">TheLast</div>\r\n </li>', '<li>\r\n <div>\r\n <h3>TheNew</h3>\r\n </div>\r\n <div class="LastDiv">TheLastNew</div>\r\n </li>']
общий результат перед print()
равен
>>> data = {}
>>> list = response.css('ul li').extract()
>>> for li in list:
... data[li.css('div.LastDiv::text')].append(li.css('div > h3::text'))
...
Traceback (most recent call last):
File "<console>", line 2, in <module>
AttributeError: 'str' object has no attribute 'css'