2017-08-25 74 views
-1

我需要從https://eservices.dha.gov.ae/DHASearch/UIPages/ProfessionalSearch.aspx?PageLang=En中提取數據。我需要4欄 - 「姓名」,「性別」,「標題」,「醫院名稱」,「聯繫方式」。點擊名稱時將顯示「標題」信息。我面臨的另一個問題是從多個頁面提取信息。總共有10071條記錄。我需要所有這些記錄的信息。目前我在R中使用rvest軟件包,但它是拋出錯誤。請參閱下面的代碼 -R/Python中的網頁抓取

library(rvest) 
    session = html_session("https://eservices.dha.gov.ae/DHASearch/UIPages/ProfessionalSearch.aspx") 
    form = html_form(session)[[1]] 

錯誤:下標越界

我願意在Python的解決方案。我是在Python中使用beautifulsoup的新手。任何幫助將不勝感激!

+0

您應該學習Python Scrapy。當你說'我願意接受Python的解決方案'時,我會建議你使用它,因爲在這裏你會得到更多的幫助。在scrapy中進行編碼,然後詢問具體問題,如果您有任何問題 –

+0

我不知道R或rvest,但是BeautifulSoup使這非常簡單。它使用請求庫。所以你可以做'website = requests.get(「url」)'這會給你一個你可以操作的網站對象。然後,如果你想得到表中的每一行(是表格,我只是猜測),你可以使用類似'soup = BeautifulSoup(網站),rows = soup.findAll('tr 「)'。還有許多其他的東西可以用來縮小搜索範圍。看看這裏的文檔:https://www.crummy.com/software/BeautifulSoup/bs4/doc/。如果你更容易就發表評論 –

回答

0

如果您有權刪除所有這些個人信息,那麼最好的方法是使用python中的selenium和網絡驅動程序通過調用用於每個分頁頁面的js函數調用來瀏覽頁面,拉他們每個人的頁面源。這可能是你最好的選擇,因爲數據是使用Javascript調用加載的。