0

我是scrapy的初学者,但正在学习。我一直在解析这个页面。并试图从页面上刮下地址。

我已经在scrapy shell中完成了这个,所以我开始:

scrapy shell https://www.marksandspencer.com/MSStoreDetailsView?storeId=10151&langId=-24&SAPStoreId=6952

哪个工作正常。然后我尝试解析地址:

response.xpath('//li[@class="address"]/text()').extract()

但我的输出如下:

['\n\t\t', '\n\t\t\n\t\t']

为什么我无法看到页面上显示的地址:

贝尔法斯特修道院中心,1 Old Glenmount Road Newtonabbey,牛顿修道院,BT36 7DN

我将如何去获取这个地址?我感谢任何花时间回复的人。

4

1 回答 1

2

关于您如何处理此问题有几个错误:

  1. 使用 时scrapy shell,您必须用 包围 url "",因为终端可以将其解释为多个进程,因为&url 中的字符:

    scrapy shell "https://www.marksandspencer.com/MSStoreDetailsView?storeId=10151&langId=-24&SAPStoreId=6952"
    
  2. 您的 xpath 不正确,因为/text()您正在获取该特定标签的文本,而这li实际上并不包含您想要的信息。包含该文本的标签位于其子级上,li因此您可以使用:

    response.xpath('//li[@class="address"]//text()').extract()
    

    或者

    response.xpath('//li[@class="address"]/p/text()').extract()
    
于 2017-12-17T20:41:27.877 回答