【发布时间】:2012-08-24 04:11:35
【问题描述】:
我正在使用 scrapy 来抓取具有一些奇怪格式约定的网站。基本思想是我想要某个div的所有文本和子元素,除了开头的几个,结尾的几个。
这是要点。
<div id="easy-id">
<stuff I don't want>
text I don't want
<div id="another-easy-id" more stuff I don't want>
text I want
<stuff I want>
...
<more stuff I want>
text I want
...
<div id="one-more-easy-id" more stuff I *don't* want>
<more stuff I *don't* want>
注意:缩进意味着结束标签,所以这里的所有内容都是第一个 div 的子元素——id="easy-id"
因为文本和节点是混合的,所以我无法找到一个简单的 xpath 选择器来获取我想要的东西。在这一点上,我想知道是否可以从 xpath 检索结果作为 lxml.etree.elementTree,然后使用 .remove() 方法对其进行破解。
有什么建议吗?
【问题讨论】:
-
你可以使用 lxml 进行解析,但同时 Xpath 也可以工作,如果你告诉我们你想从中获取什么..
-
查看示例 -- 我已将所有内容标记为“我想要的东西”或“我不想要的东西”
-
您的缩进是否暗示
</div>、</stuff>和</more>或者标记与这里的相似?这意味着最终的<more>嵌套了六层? -
如果您粘贴正确的 html 而不是示例会很好,因为在您的场景中不能有通用的 xpath,而是精确的。
-
@stav - 缩进意味着结束标签。这里的一切都是第一个的孩子