2012-10-22 25 views
1

http://www.vliz.be/vmdcdata/mangroves/aphia.php?p=browser&id=235056&expand=true#ct 獲得的數據(這是我試圖刮信息)如何從TreelView列表

我想湊這個詳細的分類樹,以便我可以反正我喜歡操縱它們。

但是在創建這個樹數據時有幾個問題。

  1. 我不能完全展開分類樹。當一些擴大,一些崩潰的指示表明。 因此將整頁保存爲html文件無法解決我的問題。 或者我可以重複這個過程來獲得單獨的文件並將它們連接起來......但它似乎是一種難看的方式。

  2. 我厭倦了點擊,有這麼多「加號」的跡象,我必須等待。

有沒有辦法解決這個問題了使用Python的一個方式?

+1

哼。使用Chrome我可以展開整個樹,沒有分支關閉。你在使用什麼庫進行抓取? – root

回答

0

使用Selenium,這將通過點擊「加號」展開樹,並在它的所有元素讓整個DOM,它的完成之後:

from selenium import webdriver 
import time 

browser=webdriver.Chrome() 
browser.get('http://www.vliz.be/vmdcdata/mangroves/aphia.php?p=browser&id=235301&expand=true#ct') 

while True: 
     try: 
      elem=browser.find_elements_by_xpath('.//*[@src="http://www.marinespecies.org/images/aphia/pnode.gif" or @src="http://www.marinespecies.org/images/aphia/plastnode.gif"]')[1] 
      elem.click() 
      time.sleep(2) 
     except: 
      break 

content=browser.page_source 
+0

非常感謝,我終於完成了。我重用了你的代碼,並使用BeautifulSoup解析了「內容」變量。 – oneswarm1988