我想在这个HTML上抓住这本书的封面。封面有时是第一顺序,有时它是第二顺序。
<div class="content">
<ul>
<li>
<b>Series</b>
Campell
</li>
<li>
<b>Hardcover:</b>
1465 pages
</li>
</ul>
</div>
我将封面类型放在此列表中
cover = ['Hardcover', 'BoardBook', 'CardBook']
当我在xpath中专门编写'Hardcover'
时,它可以正常工作。
response.xpath("//li/b[contains(text(),'Hardcover')]/text()").extract()
但是,当我使用列表cover[0]
的索引时,它也会带来其他内容。
response.xpath('//li/b[contains(text(),cover[0])]/text()').extract()
我想迭代列表值以在标签之间检查其中一个。
答案 0 :(得分:3)
你需要字符串连接:
response.xpath('//li/b[contains(text(), "' + cover[0] + '")]/text()').extract()
或
xpath_string = '//li/b[contains(text(), "{}")]/text()'.format(cover[0])
response.xpath(xpath_string).extract()
检查this有关xpath注入的信息