1. 程式人生 > >利用python爬蟲技術動態爬取地理空間資料雲中的元資料(selenium)

利用python爬蟲技術動態爬取地理空間資料雲中的元資料(selenium)

python爬取地理空間資料雲selenium動態點選

爬取的網址秀一下:

爬取的資訊是什麼呢?

這個資訊的爬取涉及到右邊按鈕的點選,這屬於動態爬取的範疇,需要用到selenium

好了,那麼開始寫程式碼吧

首先匯入selenium

from selenium import webdriver

 然後從網站上下載火狐瀏覽器自動點選的驅動,隨便放一個路徑,後面會用到

驅動長啥樣?張下面這個樣子

當然火狐瀏覽器別忘了下哦(小貓貼心提醒)

接下來是在程式碼中載入驅動

driver = webdriver.Firefox(executable_path='C:/install/python36/geckodriver')

可以看到有個executable_path,這個就是你放驅動的位置,放哪裡都行。

然後F12解析該網頁,找到需要點選的元素,可以利用

driver.find_element_by_id

driver.find_element_by_name

driver.find_element_by_link_text

driver.find_element_by_class_name

driver.find_element_by_xpath

等,

這裡我用Xpath找到要點選的元素

list0=driver.find_elements_by_xpath("//tbody/tr[@class='dlv-row dlv-row-0']/td[last()]/div/div/a[1]")

不過這裡我找到的是elements,是相同Xpath的list哦,不是單個元素哦

然後遍歷list中的每一個元素,點選(左鍵單擊)並獲取當前的網頁,實現的程式碼很簡單:

for li in list0:
    li.click()
    html = driver.page_source
    data = str(pq(html))

還可以用BeautifulSoup解析獲取的網頁,很輕鬆很簡單

soup = BeautifulSoup(data, 'html.parser')

至於跳轉換頁相同的原理是相同的,這裡就不贅述了

哦,對了,還要讓這個稍微休眠一會,不然爬了一點資料就停止爬了

實現的方式有多種:

driver.implicitly_wait(30)
time.sleep(1)

爬出的資料是這樣子的