我有一些HTML如下圖所示如何使用xpath從此輸入中只獲取值9?
<ol Class="z1">
<li><h3>Number Theory - HCF LCM</h3>
<p lang="title">How many pairs of integers (x, y) exist such that the product of x, y and HCF (x, y) = 1080?</p>
<ol class="xyz">
<li>8</li>
<li>7</li>
<li>9</li>
<li>12</li>
</ol>
<ul class="exp"><li class="grey fleft"><span class="qlabs_tooltip_bottom qlabs_tooltip_style_33" style="cursor:pointer;"><span><strong>Correct Answer</strong>Choice (C).</br>9</span> Correct answer</span></li><li class="primary fleft"><a href="hcf-lcm_1.shtml">Explanatory Answer</a></li><li class="grey1 fleft">HCF LCM</li><li class="red1 flrt">Hard</li>
</ul>
</li>
</ol>
我希望從它的類EXP後面的BR
我寫了一個現有的XPath查詢UL下正確答案抓住價值9該得到的一切,但犯規相當做的工作 「 '.// UL [@類= 」EXP「] /李/ SPAN/SPAN /文()'」
任何幫助,高度讚賞?
試圖在scrapy運行此XPath表達式
class BrickSetSpider(scrapy.Spider):
name = "cat_spider"
start_urls = ['http://iim-cat-questions-answers.2iim.com/quant/number-system/hcf-lcm/']
def parse(self, response):
CLASS_SELECTOR = '//ol[@class="z1"]/li'
problems = []
for lis in response.xpath(CLASS_SELECTOR):
question = lis.xpath('.//p[@lang="title"]/text()').extract_first().strip()
choices = lis.xpath('.//ol[@class="xyz"]/li/text()').extract()
ANSWER_SELECTOR = './/ul[@class="exp"]/li/span/span/text()[not(contains(.,"Choice"))]'
correct_answer = lis.xpath(ANSWER_SELECTOR).extract_first()
explanation = lis.xpath('.//ul[@class="exp"]/li[2]/a/@href').extract_first().strip()
difficulty = lis.xpath('.//ul[@class="exp"]/li[last()]/text()').extract_first().strip()
p = Problem(question,choices, correct_answer, explanation, difficulty)
print(question, choices, correct_answer)
您想僅獲得'9'文本嗎?這是在正確的答案 – NarendraR
是@NarendraRajput – PirateApp