在scrapy中选择多个属性

Selecting multi attributes in scrapy

我正在尝试使用 scrapy 从页面中获取一些数据。比方说 html:

<div class=example id=example>
<p>Some text</p>
<ul>
<li>A list 1</li>
<li>A list 2</li>
<li>A list 3</li>
</ul>
<p>text again</p>
</div>

我通过选择整个 ID 然后按属性提取数据来选择此数据,如下所示:

response.xpath('//*[@id="example"]/p').getall()

结果是:

<p>Some text</p>
 <p>text again</p>

但我无法获取列表。 我想得到这个:

<p>Some text</p>
<ul>
<li>A list 1</li>
<li>A list 2</li>
<li>A list 3</li>
</ul>
<p>text again</p>

关于如何获取此 class 中的所有属性和数据的任何建议?

尝试:

 response.xpath('//*[@id="example"]/p | //*[@id="example"]/p /ul/li').getall()

代码:

lst = response.xpath('//div[@id="example"]/*').getall()

会return你想要什么:

lst = ['<p>Some text</p>', '<ul>\r\n<li>A list 1</li>\r\n<li>A list 2</li>\r\n<li>A list 3</li>\r\n</ul>', '<p>text again</p>']

让我们按顺序打印列表:

for i in lst:
    print(i)
<p>Some text</p>
<ul>
<li>A list 1</li>
<li>A list 2</li>
<li>A list 3</li>
</ul>
<p>text again</p>