我試圖使用JavaScript中生成的Python動態內容(此視頻上的視圖和註釋的數量:http://v.youku.com/v_show/id_XMTM5NTI3NDY3Ng==.html?from=y1.3-idx-uhome-1519-20887.205805-205902.5-2)進行刮擦。使用python快速刮取動態內容
我對BeautifulSoup(在0.1秒內運行,但沒有JavaScript評估)和Selenium(3+秒,甚至當我停用CSS,圖像等,但解釋JS)都很熟悉。
有沒有一種方法可以在沒有實際使用瀏覽器的情況下在Python中捕獲JavaScript函數的結果(假設這會降低Selenium的速度)?
我的硒代碼如下:
# coding=utf-8
import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
firefox_profile=webdriver.FirefoxProfile()
#firefox_profile.set_preference('permissions.default.stylesheet',2)
firefox_profile.set_preference('permissions.default.image',2)
firefox_profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so',2)
driver = webdriver.Firefox(firefox_profile=firefox_profile)
time.sleep(7)
start=time.time()
def getYoukuVideoStats(youkuVideoUrl):
driver.get(youkuVideoUrl)
text= driver.find_element_by_id("allnum_cmt").text
print text
youku_video_urls_full=["http://v.youku.com/v_show/id_XOTU2Nzc3NDYw.html"]
for youkuVideoUrl in youku_video_urls_full:
try:
getYoukuVideoStats(youkuVideoUrl)
print youkuVideoUrl
except Exception, e:
print "Error with video: "+youkuVideoUrl
print str(e)
print time.time()-start