所以,这不完全是你所要求的,但它确实有效。通过设置虚拟显示器,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'}}
碰巧他们有一个名为 javascript 的命名空间MACYS
,用于保存有关图像的所有信息(这是我打印出来的)。希望有帮助。