Python 如何提取特定的<;李>;元素是否使用Xpath或CSS?
如何提取跨度内的信息,进而在li中找到这些信息Python 如何提取特定的<;李>;元素是否使用Xpath或CSS?,python,css,xpath,scrapy,web-crawler,Python,Css,Xpath,Scrapy,Web Crawler,如何提取跨度内的信息,进而在li中找到这些信息 <div class="col-md-offer-content"> <ul class="params-list"> <li> <ul class="main-list"> <li>Preço <span><strong>350 €</strong></span> 6 €/m²</li>
<div class="col-md-offer-content">
<ul class="params-list">
<li>
<ul class="main-list">
<li>Preço
<span><strong>350 €</strong></span> 6 €/m²</li>
<li>Área útil (m²)
<span><strong>60 m²</strong></span></li>
<li>Tipologia
<span><strong>T1</strong></span></li>
</ul>
输出是:['Typology']
但在我的例子中,我希望它返回T1,所以我做了:
response.xpath ('// ul [@ class = "main-list"] / span [li = "Tipology"] / text ()') .extract ()
但它不会返回任何东西。。。我做错了什么?有什么建议吗?您可以这样做:
esponse.xpath ('// ul [@ class = "mainlist"] / [span="T1"] / text ()'). Extract ()
或
或
如果将类添加到跨度中
<div class="col-md-offer-content">
<ul class="params-list">
<li>
<ul class="main-list">
<li>Preço
<span><strong>350 €</strong></span> 6 €/m²</li>
<li>Área útil (m²)
<span><strong>60 m²</strong></span></li>
<li>Tipologia
<span class="thisSpan"><strong>T1</strong></span></li>
</ul>
或
在CSS中:driver.findElement(By.cssSelector(“ul#mainlist span.thissspan”)代码>
你只能得到三分之一的价值。
如果您想要一个具有每个li值的列表。
尝试:
xpath=“//ul[@class=“main list”]///li//text()”
li\u vals\u list=response.xpath(xpath.extract()
使用此方法,您将获得每个li的val,并且只需索引即可获得所需的li的val:)
谢谢。这段代码来自一个网站,我正在该网站上获取创建爬虫程序的信息。。。我可以添加这段代码吗?如果我添加了这段代码:response.xpath('//ul[@class=“mainlist”]/[span=“Tipology”]/text())。Extract(),出现此错误:ValueError:XPath错误:无效表达式,因此此代码有效:'//ul[@class=“main list”]//li[3]//span'。但是打印:T1。我怎么射这些子弹?文字上写的是“Tipologia”,而不是“Tipology”。
//ul[@id='mainlist']//li[3]//span
<div class="col-md-offer-content">
<ul class="params-list">
<li>
<ul class="main-list">
<li>Preço
<span><strong>350 €</strong></span> 6 €/m²</li>
<li>Área útil (m²)
<span><strong>60 m²</strong></span></li>
<li>Tipologia
<span class="thisSpan"><strong>T1</strong></span></li>
</ul>
esponse.xpath ('// ul [@ class = "mainlist"] / span[@class="thisSpan"] / text ()'). Extract ()
xpath = '//ul[@class="main-list"]//li[3]//text()'
val = response.xpath(xpath).extract_first()