2013-03-30 145 views
0

我使用Selenium嘗試從網站獲取數據。但是我想要的數據存儲在'hidden'標籤中,所以當我拉取源代碼時它不可見。有什麼辦法可以解決這個問題嗎?是否有不同類型的隱藏?(Python)使用'style:hidden'標籤從網站上刮取數據?

我認爲它是隱藏的,因爲我也使用Firebug,它可以看到頁面上的來源,我試圖刮擦,但它'灰色'的來源,我讀過的是該來源隱藏着style:hidden標記。

+0

你是否能夠使用urllib2或類似的方式拉HTML?如果是這樣,那麼在那裏找它,也許你可以用美麗的湯來處理它,以獲得隱藏的標籤。 –

+0

我可以拉它,但有一大塊內容是從它丟失。這只是不存在。 – user1472747

+0

你可以給你感興趣的網站的網址嗎? – user1609452

回答

1

可能發生的情況是,網站正在通過JavaScript和/或XMLHttpRequest或通過CSS加載附加數據。一旦Firebug完成,Firebug會向您顯示DOM。使用Webdriver,您可以在瀏覽器中加載頁面並與其交互。一旦有特定的用戶交互時,就會提供一些附加信息。因此,減輕這一點的一種方法是使用webdriver來引導瀏覽器並執行相同的操作順序,以便DOM相應地改變。

您可能想要使用CSS來更改屬性並使該元素可見。

鑑於您沒有提供任何您想要做的代碼示例,因此精確幫助您是不現實的。但是在官方文檔中你會發現很多python中的webdriver code examples

0

我在使用Selenium進行拼貼的一個具體原因是爲了確保在我開始搜索內容之前,每個頁面的JavaScript創建部分都已完全呈現。我用這條線要等我要加載的內容:

WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, my_xpath))) 

的「30」是30秒等待計時器,如果超過這個值,然後一個TimeoutException發生,所以你會希望把它放在一個try ... except:塊。更改my_xpath以匹配您想要的標籤。即使樣式被標記爲隱藏,Selenium仍然可以看到它。