【发布时间】:2017-10-05 05:25:38
【问题描述】:
我正在尝试使用 scrapy 抓取购物网站的价格。考虑下面这段代码,从网站的scrapy shell执行:
response.xpath('//*[@id="content"]/div[2]/div/div/div[5]/div[1]').extract()
结果是这样的:
[u'<div class="subcategory-title"><span class="placeholder"></span></div>']
但在页面源代码(使用 chrome 开发者工具查看)上,我可以看到该行:
<div class="subcategory-title">Organic Vegetables</div>
首先,“有机蔬菜”是如何被跨度隐藏的?其次,如何获取文本而不是空的 span 元素?
谢谢。
【问题讨论】:
-
可能您忘记在 XPath 中添加
/text() -
如何使用 BeautifulSoup 和 Request 实现相同的目标?那是不是使用 Scrapy 或 Splash?
-
试着把你的xpath改成
//*[@id="content"]/div[2]/div/div/div[5]/div[1]/text()
标签: python html web-scraping scrapy