2013-03-17 149 views
0

我在寫一個簡單的使用VBA的爬蟲。我發現我正在查找的數據與節點<h6 class="country-name" id="Australia">相對應。需要結合.getElementsByClass和.getElementsById從網站抓取數據

我知道,如果我想從中選擇數據,比如說,<div class="section-country">,我應該在我的VBA宏中使用.getElementsByClassName("section-country")

在節點中同時存在類 id,應該在我的VBA宏中插入哪條命令來抓取數據?

非常感謝, Avitus

編輯:寫.getElementsByClassName( 「國家名稱」)getElementsById( 「澳大利亞」)給我一個錯誤。爲什麼?

+2

我會推薦使用id選擇器作爲其通常的uniq而不是通常在html中許多地方使用的類。 – 2013-03-17 17:44:03

+0

那麼你只需要編寫.getElementsById(「Australia」)來選擇節點中的數據

? – Avitus 2013-03-17 17:47:20

+0

right ............. – 2013-03-17 17:49:58

回答

1

getElementsByID(複數)不存在 - 應該只有一個具有給定ID的項目。因此,使用存在的getElementByID(單數)。如果碰巧有多個具有相同ID的元素,則此函數將返回第一個元素。

正如其他人所說,通過ID選擇的聲音更適合你想要比類

+0

我明白了,所以在某種意義上,Id比class更具體。謝謝你的幫助! – Avitus 2013-03-18 18:26:43

0

必須有像getelementbyxpath的方法,你可以使用此XPath使用此方法「// DIV [選擇做什麼@類= '國家名' 和@id = '澳大利亞']」

例如:getElementsByXpath( 「// DIV [@類= '國家名' 和@id = '澳大利亞']」)

在這裏閱讀更多how to set up a crawler for web scraping