我一直在玩scrapy,我发现xpath的知识对于成功利用scrapy至关重要。我有一个网页,我正在尝试从标签的格式中收集一些信息
<div id = "content">
<h1></h1>
<p></p>
<p></p>
<h1></h1>
<p></p>
<p></p>
现在标题包含标题,第一个“p”包含 data1,第二个“p”包含 data2。这似乎是一个非常简单的任务,如果总是这样,我就没有问题,hsx.select('//*[@id="content"]')
例如等等。
问题是,有时标题后面只有一个 p 标签,而不是两个。
<div id = "content">
<h1></h1>
<p></p> (a)
<h1></h1>
<p></p> (b)
<p></p> (c)
我想要的是,如果缺少段落标签,我想将该信息作为空白数据存储在我的列表中。现在发生的情况是列表存储第一个标题 1、第一个段落标记 (a),然后是第二个 h1 (b) 下的段落标记。它应该做的是存储
title -> h1[0]
data1[0] -> (a)
data2[0] ->[]
我希望这是有道理的。我一直在寻找一个好的 xpath 或 scrapy 解决方案来做到这一点,但我似乎找不到。任何有用的提示都会很棒。谢谢