Python 在xpath中使用列表变量
我想抓住这本关于HTML的书的封面。封面有时是一等的,有时是二等的Python 在xpath中使用列表变量,python,python-3.x,xpath,web-scraping,scrapy,Python,Python 3.x,Xpath,Web Scraping,Scrapy,我想抓住这本关于HTML的书的封面。封面有时是一等的,有时是二等的 <div class="content"> <ul> <li> <b>Series</b> Campell </li> <li> <b>Hardcover:</b> 146
<div class="content">
<ul>
<li>
<b>Series</b>
Campell
</li>
<li>
<b>Hardcover:</b>
1465 pages
</li>
</ul>
</div>
当我专门用xpath编写“精装本”
时,它是有效的
response.xpath("//li/b[contains(text(),'Hardcover')]/text()").extract()
然而,当我使用列表封面[0]
的索引时,它也带来了其他东西
response.xpath('//li/b[contains(text(),cover[0])]/text()').extract()
我想迭代列表值,以便在标记之间检查其中一个值。您需要字符串连接:
response.xpath('//li/b[contains(text(), "' + cover[0] + '")]/text()').extract()
或
检查xpath注入和的副本
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()