【发布时间】:2017-03-15 16:58:55
【问题描述】:
我附上了一张图片。
我面临的问题是获得同一类的第一个元素。我试图得到
.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"> ← التالي </a>
<br />
</div>
</div>
【问题讨论】:
-
什么不起作用? “输出:الرياض”是你想要的还是你得到的和不期望的?
-
@paultrmbrth,是的,我想要这个输出
الرياض但得到null -
请注意,CSS3 没有“1st of class”的选择器,只有父级下的第 N 个孩子,或第 N 个“标签”(如 Nth
<p>,N-th @ 987654336@. CSS4 有:nth-match可以做到这一点(我认为),但它没有在 scrapy/parsel/cssselect 中实现 -
您可能需要提供一些示例 HTML 输入。并检查页面的来源(如
view-source:),而不是浏览器检查工具显示的内容。 -
你的输出是什么?,你检查过是否没有 javascript 改变了 html 代码吗?,你能发布一个示例 url
标签: css python-3.x scrapy