地圖的代碼在頁面源代碼中不可用,因爲它使用的是AJAX渲染。
您仍然可以使用無頭瀏覽器(如PhantomJS)和Selenium(用於操作DOM)的組合來抓取網站。
當你點擊任何一個國家檢查元素,你會看到這樣的代碼
<path d="M384.26,87.96l-0.51,2.35l0.08,0.28l2.61,2.58l-2.99,2.83l-
7.16,2.72l-2.08,0.7l-9.51,-1.71l1.89,-1.36l-0.07,-0.53l-
4.4,-1.59l3.33,-0.59l0.25,-0.32l-0.11,-1.2l-0.25,-0.27l-
4.82,-0.88l1.38,-2.2l3.54,-0.57l3.8,2.74l0.33,0.01l3.68,-2.18l3.02,
1.12l0.25,-0.02l4.01,-2.18l3.72,0.27Z" data-code="IS" fill="#dadada"
fill-opacity="1" stroke="none" stroke-width="0" stroke-opacity="1"
fill-rule="evenodd" class="jvectormap-region jvectormap-element">
</path>
每個國家的代碼是除了「d」和「數據代碼」屬性相似。這兩個對每個國家都是獨一無二的。您可以使用selenium webdriver使用此唯一屬性查找元素,然後使用click方法轉到登錄頁面。我想像網站的其他部分也會加載AJAX中的東西,所以你可以堅持Selenium,PhantomJS和BeautifulSoup組合來模擬用戶登錄(使用你的憑證,我沒有任何我不能嘗試的),然後刮無論你需要什麼結果。
希望這有助於入門!
獎金:要了解這些值「D」屬性意味着,read this
感謝您的提示,還鏈接。我在硒司機遇到一些麻煩,生病了另一個裂縫。 :) –