Adi*_*rma 4 python scrapy web-scraping
我是scrapy的新手,我必须从具有多个类名的标签中提取文本,其中类名包含空格和连字符。
例子:
<div class="info">
<span class="price sale">text1</span>
<span class="title ng-binding">some text</span>
</div>
Run Code Online (Sandbox Code Playgroud)
当我使用代码时:
response.xpath("//span[contains(@class,'price sale')]/text()").extract()
Run Code Online (Sandbox Code Playgroud)
我能够获得 text1 但是当我使用时:
response.xpath("//span[contains(@class,'title ng-binding')]/text()").extract()
Run Code Online (Sandbox Code Playgroud)
我得到一个空列表。为什么会发生这种情况以及如何处理?
您要查找的表达式是:
//span[contains(@class, 'title') and contains(@class, 'ng-binding')]
Run Code Online (Sandbox Code Playgroud)
我强烈推荐 XPath 可视化工具,它可以帮助您轻松调试 xpath 表达式。在这里能找到它:
http://xpathvisualizer.codeplex.com/
或者用 CSS 试试
response.css("span.title.ng-binding")
Run Code Online (Sandbox Code Playgroud)
或者元素有ng-binding可能通过 Javascript/Ajax 加载,因此不包含在初始服务器响应中。