scrapy 在xpath中使用列表变量

0lvr5msh  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(150)

我想抓住这本书的封面上的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()

我想迭代列表值以在标记之间检查其中的一个。

1l5u6lss

1l5u6lss1#

您需要字符串连接:

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()


检查有关xpath注入的信息

相关问题