2017-10-04 53 views
0

我想抓取購物網站的價格,使用scrapy。考慮下面這段代碼,從scrapy外殼爲網站執行:使用Scrapy抓取購物商店數據

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元素?

謝謝。

+0

也許你忘了'/文()'添加到您的XPath – AndMar

+0

我如何使用BeautifulSoup達到同樣的事情,並要求?這不是使用Scrapy或Splash? – osbon123

+0

試試把你的xpath改成'// * [@ id =「content」]/div [2]/div/div/div [5]/div [1]/text()' – AndMar

回答

0

由於文本節點是使用JavaScript動態生成的,因此您可能會看到一個範圍。

與Scrapy一起運行良好的庫如Splash可以幫助您抓取所需的頁面。

有關這次訪問此鏈接的更多信息: scrapy-splash usage for rendering javascript