添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

无法使用scrapy提取含有空格和连字符的类名的数据

5 人关注

我是Scrapy的新手,我必须从一个有多个类名的标签中提取文本,其中类名包含空格和连字符。

<div class="info">
    <span class="price sale">text1</span>
    <span class="title ng-binding">some text</span>

When i use the code:

response.xpath("//span[contains(@class,'price sale')]/text()").extract()

我能够得到text1,但当我使用。

response.xpath("//span[contains(@class,'title ng-binding')]/text()").extract()

我得到一个空列表。为什么会发生这种情况,如何处理?

2 个评论
这很奇怪,它对我有用(在Scrapy 1.3.3和1.4.0上测试)。
嗨,我在2022年也有同样的问题,你有没有解决这个问题,怎么解决的?
python
web-scraping
scrapy
Aditya Sharma
Aditya Sharma
发布于 2017-08-08
2 个回答
Umair Ayub
Umair Ayub
发布于 2020-04-27
已采纳
0 人赞同

The expression you're looking for is:

//span[contains(@class, 'title') and contains(@class, 'ng-binding')]

我强烈建议XPath visualizer,它可以帮助你轻松调试xpath表达式。它可以在这里找到。

http://xpathvisualizer.codeplex.com/

Or with CSS try

response.css("span.title.ng-binding")

或者有可能带有ng-binding的元素是通过Javascript/Ajax加载的,因此没有包含在初始服务器响应中。

Manthan Trivedi
Manthan Trivedi
发布于 2020-04-27
0 人赞同

在使用response.css()时,你可以在你的代码中用". "替换空格。 在你的案例中,你可以尝试。