2016-04-24 111 views
-3

我正在從各種網頁中提取員工數據。我不知道我將事先從中提取信息的網站列表。從網站上刮掉員工數據

例如:

this site我會試圖提取上this page列出的信息。

而從this site,我需要從this page提取信息。

由於每個網站使用不同的詞/方法來顯示這些信息,任何人都會有建議,對於這個問題的一個好方法可能是隨機列表的網站?

感謝您的幫助。

+0

使用xpath ..... – Andrew

+0

XPath或BeautifulSoup方法都可以正常工作。選擇你喜歡的工作。如果它只是你想從中獲取信息的單個頁面,那麼使用類似XPath Helper瀏覽器應用程序的東西非常方便(例如'// div [@ class ='leader-name']'可以在第二頁獲取所有名稱。 ) –

+0

@ajcr對不起,我應該更清楚。我不會事先知道這些網站,因此它必須是一個通用的解決方案。這就是我遇到的麻煩。 – Archer

回答

2

第一個網站是靜態的,因此您可以簡單地使用lxml或其他XML解析庫解析HTML,但第二個網站的內容是使用API​​從JavaScript動態加載的,因此在這種情況下,您可以直接從內容中獲取內容API端點(它是公開的:https://sqs-hub.s3.amazonaws.com/employee_photos/index.json),或者如果您想要更通用的解決方案,那麼您可以使用像selenium webdriver這樣的工具來模擬真實用戶,向下滾動頁面以加載動態內容,然後獲取頁面的HTML源代碼像第一種情況一樣解析它。

+0

你是如何找到API端點的?你能解釋一下嗎? – Abbas

+1

手動使用Chrome的檢查元素中的網絡標籤。那裏我過濾了'XHR'請求,很明顯'index.json'就是我需要的。 – sc3w