2016-12-05 34 views
-1

我試着使用selenium像這樣的頁面與chromedriverhttp://shironet.mako.co.il/artist?type=lyrics&lang=1&prfid=202&wrkid=2473使硒不是等到頁面的滿負荷

的問題是,Selenium一直等到頁面完成加載(例如youtube播放器那裏)。 我只是在html來源有趣,所以我不想等這麼久。 如何讓我的程序不要等待?我正在使用python。 (我使用selenium原因urllib本網站沒有工作)

+0

你正在使用什麼代碼來打開網頁..通常driver.get()方法等待,直到頁面加載 – thebadguy

+0

嗨,即時通訊使用:driver.get(url),然後driver.page_source。但我不想等到頁面加載..我只想要源代碼 –

回答

0

有幾個可能的解決方案:

1)當你沒有明確你的意思urllib didnt work for this website,你可以嘗試使用python-requests庫,而不是:

使用pip install requestscmd/Terminal

url = "http://shironet.mako.co.il/artist?type=lyrics&lang=1&prfid=202&wrkid=2473" 
page_source = requests.get(url).content 

2)嘗試禁用媒體文件自動播放與Firefox Preferences

from selenium.webdriver.firefox.firefox_profile import FirefoxProfile 

profile.set_preference("media.autoplay.enabled", False); 
driver = webdriver.Firefox(profile) 

3)更粗暴的方法就是頁面上禁用Javascript(我不知道你實際上可能需要這個描述的目的)

from selenium.webdriver.firefox.firefox_profile import FirefoxProfile 

profile.set_preference("javascript.enabled", False); 
driver = webdriver.Firefox(profile) 

但要小心,因爲它可以刪除一些所需的媒體文件從頁面源

0

如果你只想要的源代碼,你實際上並不需要什麼硒做,因此硒,只會讓你的方式。用selenium來抓取URL,然後做一個簡單的HTTP GET(例如用curl或wget,或者其他編程語言中的內建函數,例如urllib2或Python中的請求庫)

如果你仍然想做一些複雜的解析HTML,看看BeautifulSoup或LXML。

+0

我希望簡單的http獲取請求正在工作,但它不會導致該網站受到一些javascripts保護,我認爲。 http://stackoverflow.com/questions/40710396/requesting-web-page-with-python –

+0

受保護使用身份驗證?或防止刮傷?如果它被保護免受刮傷,則應等到完全加載。這樣你就可以確定任何正在進行的爭奪已經解決 - >使用Selenium,等待頁面加載,查看源代碼。旁註:您可以在驅動程序設置中禁用某些插件。例如,我使用'preferences.put(「plugins.plugins_disabled」,new String [] {「Adobe Flash Player」,「Chrome PDF Viewer」});'很多。大多數驅動程序和大多數語言都存在類似的東西 – TimoV