2012-12-19 26 views
0

我正在爲macys.com寫一個履帶。我需要輸入每種產品的每種顏色作爲單獨的條目。他們的網站已設置好,以便在將點擊發送到切換產品圖像的色板圖像時激活腳本。據我所知,這是檢索產品圖像URL的唯一方式(因爲它不存儲在頁面上的任何位置,直到點擊該樣本)。我目前使用請求和BeautifulSoup來解析html。此代碼將在安裝瀏覽器不可行的環境中運行(即我不能使用Selenium)。樣本不在窗體標籤中,並且不被機械化(或斜紋)視爲可點擊。在沒有Selenium的python網頁上發送點擊到img

tl; dr:如何在不使用Selenium的情況下將點擊發送到由id和標籤找到的非表單非鏈接元素?

回答

0

所以,這不完全是你要求的,但它確實有效。通過使用虛擬顯示器設置硒,Selenium可以在沒有實際瀏覽器的情況下使用。它需要xvfb和pyvirtualdisplay(這是xvfb的包裝)。這是我如何得到它的工作(在安裝xvfb後的Ubuntu 12.04上)。

from selenium import webdriver 
from pyvirtualdisplay import Display 

display = Display(visible=0, size=(800, 600)) 
display.start() 

browser = webdriver.Firefox() 
url = 'http://www1.macys.com/shop/product/alfani-black-sweater-horizontal-texture-stripe-full-zip-sweater?ID=720780&CategoryID=4286&LinkType=PDPZ1' 
browser.get(url) 
el = browser.execute_script('return MACYS.pdp.primaryImages') 

print el 
{u'720780': {u'Blue Indigo': u'2/optimized/1291562_fpx.tif', 
    u'Deep Black': u'3/optimized/1291563_fpx.tif', 
    u'Flint Heather': u'4/optimized/1291564_fpx.tif', 
    u'Grey Heather': u'1/optimized/1291911_fpx.tif', 
    u'River Blue': u'0/optimized/1291560_fpx.tif'}} 

正巧他們有一個叫MACYS,他們保留所有關於圖像的信息(這是我打印出來有)JavaScript的命名空間。希望有所幫助。

相關問題