scrapy 获取同一类的第 n 个子文本

Emu*_*Emu 3 css scrapy python-3.x

我附上了一张图片。我面临的问题是获取同一类的第一个元素。我正在尝试获取 .adxHeader> .adxExtraInfo (1st one)> .adxExtraInfoPart (1st one)>a::text

我写了以下代码但没有工作。任何的想法?

response.css('div.adxViewContainer div.adxHeader div.adxExtraInfo:nth-child(1) div.adxExtraInfoPart:nth-child(1) a::text').extract_first()

预期输出: ??????

在此处输入图片说明

在此处输入图片说明

<div class="adxHeader">
        <h3 itemprop="name"> »  ??? ????? ?????? ???? ?? ????????</h3>

                            <div class="adxExtraInfo">
                                <div class="adxExtraInfoPart"><a href="/city/??????"><i class="fa fa-map-marker"></i> ??????</a></div>
                                <div class="adxExtraInfoPart"><a href="/users/??? ????"><i class="fa fa-user"></i> ??? ????</a></div>
                            </div>

                            <div class="adxExtraInfo">
                                <div class="adxExtraInfoPart"> ???  ???? ? 27 ?????</div>
                                <div class="adxExtraInfoPart">#20467014</div>
                            </div>
                            <div class="moveLeft">


                                <a href="www.google.com" class="nextad"> &#8592; ??????      </a>
                                          <br />

                            </div>

        </div>
Run Code Online (Sandbox Code Playgroud)

vol*_*old 5

您可以使用 xpath 而不是 css:

response.xpath('(//div[@class="adxExtraInfo"])[1]//a/text()').extract_first()
Run Code Online (Sandbox Code Playgroud)