我有一个结构HTML,如下所示:
<h3><span class="important">important 1</span></h3>
<ul><li>1</li></ul>
<ul><li>2</li></ul>
<h2><span class="important_2">important 2</span></h2>
<ul><li>3</li></ul>
<ul><li>4</li></ul>
<h3><span class="not_important">not important</span></h3>
<ul><li>5</li></ul>
<ul><li>6</li></ul>
<h2><span class="not_important_2">not important</span></h2>
<ul><li>7</li></ul>
<ul><li>8</li></ul>
我试图获取除<li>
或h2
以下的所有h3
个元素,其中包含关键字为not_important
的类名,但我不会&#39 ;我真的知道如何去做。
这是我到目前为止所做的事情:
In [1]: import scrapy
In [2]: selector = scrapy.Selector(text="""<h3><span class="important">important 1</span></h3>
...: <ul><li>1</li></ul>
...: <ul><li>2</li></ul>
...:
...: <h2><span class="important_2">important 2</span></h2>
...: <ul><li>3</li></ul>
...: <ul><li>4</li></ul>
...:
...: <h3><span class="not_important">not important</span></h3>
...: <ul><li>5</li></ul>
...: <ul><li>6</li></ul>
...:
...: <h2><span class="not_important_2">not important</span></h2>
...: <ul><li>7</li></ul>
...: <ul><li>8</li></ul>""")
In [3]: not_important = selector.xpath(".//span[contains(@class, 'not_important')]")
In [4]: not_important
Out[4]:
[<Selector xpath=".//span[contains(@class, 'not_important')]" data=u'<span class="not_important">not importan'>,
<Selector xpath=".//span[contains(@class, 'not_important')]" data=u'<span class="not_important_2">not import'>]
我的想法是获得所有 <li>
元素。然后使用上面的代码与following-sibling::ul
结合使用我不想要的所有元素(当我执行not_important[0].xpath("following-sibling::ul")
时它不起作用)并且最后,我要从list
每个<li>
元素中排除我不想要的所有内容。
换句话说,我被卡住了。任何帮助将受到赞赏和新年快乐,。