0
我正在使用Scrapy來抓取網頁。我通過使用xpath Chrome擴展來獲得XPath選擇器,該擴展可以正常工作。我在產品頁面上找到了我想要的所有東西,如描述,價格等。用於彈出圖像的XPath
如果我點擊一個項目的小圖像,那個項目的大圖像就會彈出,我想抓取這個大圖像。但是我用於這個大圖片的Xpath沒有獲取任何東西。另外,當我查看源代碼時,它顯示它使用JavaScript函數來加載這些彈出圖像。有沒有辦法獲取這些圖像?
start_urls = ['http://www.flipkart.com/nokia-lumia-620/p/itmdgkwywkmaa2w4?pid=MOBDGH6AKH9ERJAF']
description = hxs.select('/html/body/div[@class=" fkart fksk-body line "]/div[@id="fk-mainbody-id"]/div[@class="fk-content fksk-content enable-compare line"]/div[@class="fk-mproduct fk-mproduct-mobile "]/div[@class="mprod-section unit"]/div[@id="topsection"]/div[@class="mprod-summary lastUnit"]/div[@class="mprod-summary-title fksk-mprod-summary-title"]/h1/text()').extract()
price = hxs.select('/html/body/div/div/div/div/div/div/div/div/div/div/div/div/span/text()').extract()
image_urls = hxs.select('/html/body/div[@class="fk-ui-dialog fk-popup"]/div[@class="window alpha30 window-absolute"]/div[@class="content"]/div[@class="dialog-body"]/div[@id="pp-large-images-popup"]/div[@class="main-container"]/div[@class="pp-carousel-bd"]/div[@class="visible-image-large fk-text-center"]/img[@id="visible-image-large"]').extract()
結果:
{'description': [u'Nokia Lumia 620'],
'image_urls': [],
'price': u'14999'}
非常感謝!工作!但只是想知道是否有更好的方法來做到這一點,因爲我必須從其他網站獲取這些圖像,以及不同的結構和命名。 – 2013-03-13 18:15:48
如果大圖像的加載是通過javascript完成的,那麼一旦頁面被加載,url表單就不能通過xpath表達式來檢索url,因爲它們不存在於HTML頁面的DOM中,而是僅在特定的用戶交互之後。 (例如懸停在縮略圖上等)。爲這樣的圖像構建一個通用的刮板是一個相當複雜的問題,沒有一個xpath會給你結果。 – Tamas 2013-03-13 19:02:08
好的,謝謝!在這種情況下,我希望這個替代的東西與其他這樣的網站以及:) – 2013-03-14 16:33:50