【发布时间】:2018-02-09 07:40:10
【问题描述】:
我想获得介于“tracked_by”id 到“buzz_off”id 之间的电影名称。我已经创建了一个选择器,它可以在“tracked_by”id 之后获取名称。但是,我的意图是让脚本进行解析,直到找到“buzz_off”id。名称所在的元素:
html = '''
<div class="list">
<a id="allow" name="allow"></a>
<h4 class="cluster">Allow</h4>
<div class="base min"><a href="...">Sally</a></div>
<div class="base max"><a href="..">Blood Diamond</a></div>
<a id="tracked_by" name="tracked_by"></a>
<h4 class="cluster">Tracked by</h4>
<div class="base min"><a href="..">Gladiator</a></div>
<div class="base max"><a href="..">Troy</a></div>
<a id="buzz_off" name="buzz_off"></a>
<h4 class="cluster">Buzz-off</h4>
<div class="base min"><a href="..">Heat</a></div>
<div class="base max"><a href="..">Matrix</a></div>
</div>
'''
from lxml import html as htm
root = htm.fromstring(html)
for item in root.cssselect("a#tracked_by ~ div.base a"):
print(item.text)
我尝试过的选择器(在上面的脚本中也提到过):
a#tracked_by ~ div.base a
我得到的结果:
Gladiator
Troy
Heat
Matrix
我想得到的结果:
Gladiator
Troy
顺便说一句,我想使用此选择器解析名称而不是样式。
【问题讨论】:
-
No can do with a selector. 为此,您需要额外的代码。
标签: python web-scraping css-selectors lxml