在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>
我正在尝试使用 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>