以下是要抓取的link to a screenshot页面。
使用Scrapy shell:
response.xpath('//span[@data-id="current-price"]/text()').extract()
也不会返回任何内容。知道如何从网站上抓取这条价格信息吗?
谢谢!
答案 0 :(得分:0)
Scrapy不会执行javascript渲染,因为您需要一个浏览器自动化服务,例如selenium
或splash
。
但是,在这种情况下,您仍然可以从相同的原始响应中获取所需的信息,因为它包含数据(但未在最终显示的html标记上呈现)。大多数网站都会从单独的请求中获取额外信息,从而导致更难以抓取。
您可以通过这种方式获得所需信息:
import json
...
d = json.loads(response.xpath('//script[contains(., "Pages/FullProduct")]/text()').re_first("view\('(\{.*\})',"))
print d['price'] // {u'currency': u'GBP', u'current': 70.0, u'previous': 0.0, u'rrp': 0.0}
print d['price']['current'] // 70.0