在css选择器中使用正则表达式

时间:2015-11-13 13:11:14

标签: css regex kimono

我正在使用Kimono抓取页面,并且我遇到了一些结构如下的数据。

问题是所有数据都存储在名为<div class="agents-stats-seperator">的元素中,有些条目只有这些元素中的一个,有些条目最多有4个。

每个人都有不同的数据,我试图抓,他们之间唯一的结构化差异是文字,或者:

  • 住宅待售:
  • 住宅出租:
  • 商业销售:
  • 商业出租:

Im Kimono您可以选择通过css路径或正则表达式来定义要选择的内容。

目前我用以下定义:

div > div > div > div.agents-stats-seperator > div /^()(.*?)()$/

在拾取所有<div class="agents-stats-seperator">元素时导致问题,我们一直坚持的是如何设置正则表达式以定位包含文本Residential for sale:

我尝试过使用:

div > div > div > div.agents-stats-seperator > div [str="Residential to rent:"] /^()(.*?)()$/

但无济于事,有什么想法?

此处参考的是html的片段

    <div class="clearfix top agents-stats bg-muted">


    <div class="agents-stats-seperator">
        <div class="agents-stats-l">

                Residential for sale: 

            <strong><a href="/for-sale/branch/1-click-homes-london-19269/">14</a></strong>
        </div>
        <div class="agents-stats-c">
        Avg. asking price:
        <strong class="price">£447,143</strong>
        </div>
        <div class="agents-stats-r">
        Avg. sale listing age:
                <span>18 weeks</span>
        </div>
    </div>



    <div class="agents-stats-seperator">
        <div class="agents-stats-l">

            Residential to rent: 

            <strong><a href="/to-rent/branch/1-click-homes-london-19269/">9</a></strong>
        </div>
        <div class="agents-stats-c">
        Avg. asking rent:
        <strong class="price">£1,660 pcm</strong>
        </div>
        <div class="agents-stats-r">
        Avg. rental listing age:
                <span>3 weeks</span>
        </div>
    </div>



    <div class="agents-stats-seperator">
        <div class="agents-stats-l">
            Commercial for sale

            <strong><a href="/for-sale/commercial/branch/1-click-homes-london-19269/">1</a></strong>
        </div>
        <div class="agents-stats-c">
        Avg. asking price:
        <strong class="price">£700,000</strong>
        </div>
        <div class="agents-stats-r">
        Avg. sale listing age:
                <span>11 weeks</span>
        </div>
    </div>



    <div class="agents-stats-seperator">
        <div class="agents-stats-l">

        Commercial to let

            <strong><a href="/to-rent/commercial/branch/1-click-homes-london-19269/">1</a></strong>

        </div>
        <div class="agents-stats-c">
        Avg. asking rent:
        <strong class="price">£22,516 pa</strong>
        </div>
        <div class="agents-stats-r">
        Avg. rental listing age:
                <span>56 weeks</span>
        </div>
    </div>


</div>

1 个答案:

答案 0 :(得分:0)

尝试类似:

div:nth-child(1).agents-stats-seperator > div:nth-child(1).agents-stats-l > strong > a