Selenium+phanmJs 操作瀏覽器 爬取資料
阿新 • • 發佈:2018-12-12
什麼是selenium?
是Python的一個第三方庫,對外提供的介面可以操作瀏覽器,然後讓瀏覽器完成自動化的操作。
環境搭建
安裝selenum:pip install selenium
獲取某一款瀏覽器的驅動程式(以谷歌瀏覽器為例)
谷歌瀏覽器驅動下載地址:http://chromedriver.storage.googleapis.com/index.html
下載的驅動程式必須和瀏覽器的版本統一,大家可以根據http://blog.csdn.net/huilan_same/article/details/51896672中提供的版本對映表進行對應
1 from selenium import webdriver # 是Python的一個第三方庫,對外提供的介面可以操作瀏覽器,然後讓瀏覽器完成自動化的操作。Selenium爬蟲程式碼2 import time 3 4 #建立一個瀏覽器物件,將驅動程式載入到瀏覽器中 5 bro=webdriver.Chrome(executable_path=r'D:\爬蟲相關\資料\驅動程式\chromedriver_win32\chromedriver.exe') 6 bro.get('https://www.baidu.com') 7 time.sleep(3) 8 #定位百度的文字輸入框 9 input_text=bro.find_element_by_id('kw') 10 #在文字框中錄入一個關鍵字 11 input_text.send_keys('絲襪美女') 12time.sleep(1) 13 #獲取搜尋id 14 btn=bro.find_element_by_id('su') 15 #執行點選事件 16 btn.click() 17 time.sleep(3) 18 #關掉瀏覽器 19 bro.quit()
1 #基於phantomJs瀏覽器的程式碼示例 無介面 ,但是可以截圖 2 from selenium import webdriver # 是Python的一個第三方庫,對外提供的介面可以操作瀏覽器,然後讓瀏覽器完成自動化的操作。 3 import time 4 5PhanmJs爬蟲程式碼#建立一個瀏覽器物件,將驅動程式載入到瀏覽器中 6 bro=webdriver.PhantomJS(executable_path=r'D:\爬蟲相關\資料\驅動程式\phantomjs-2.1.1-windows\bin\phantomjs.exe') 7 bro.get('https://www.baidu.com') 8 time.sleep(3) 9 #進行截圖 10 bro.save_screenshot('1.png') 11 #定位百度的文字輸入框 12 input_text=bro.find_element_by_id('kw') 13 #在文字框中錄入一個關鍵字 14 input_text.send_keys('絲襪美女') 15 time.sleep(1) 16 #獲取搜尋id 17 btn=bro.find_element_by_id('su') 18 #執行點選事件 19 btn.click() 20 time.sleep(3) 21 bro.save_screenshot('2.png') 22 #列印頁面資料 23 print(bro.page_source) 24 #關掉瀏覽器 25 bro.quit()
1 #登入qq空間 2 bro = webdriver.Chrome(executable_path=r'D:\爬蟲相關\資料\驅動程式\chromedriver_win32\chromedriver.exe') 3 bro.get('https://qzone.qq.com/') 4 #觀察某個標籤如果是存在一個frame中的話,必須使用switch_to進行指定 5 bro.switch_to.frame('login_frame') 6 bro.find_element_by_id('switcher_plogin').click() 7 userName = bro.find_element_by_id('u') 8 userName.send_keys('qq號') 9 pwd = bro.find_element_by_id('p') 10 pwd.send_keys('qq密碼') 11 time.sleep(2) 12 btn = bro.find_element_by_id('login_button') 13 btn.click() 14 time.sleep(5) 15 bro.quit()自動登入QQ空間
1 #動態造作瀏覽器的滾動條獲取豆瓣電影中更多的電影詳情資料 2 bro=webdriver.Chrome(executable_path=r'D:\爬蟲相關\資料\驅動程式\chromedriver_win32\chromedriver.exe') 3 bro.get('https://movie.douban.com/typerank?type_name=%E5%96%9C%E5%89%A7&type=24&interval_id=100:90&action=') 4 time.sleep(2) 5 #獲取頁面的滾動條 6 bro.execute_script('window.scrollTo(0,document.body.scrollHeight)') 7 time.sleep(2) 8 page_text=bro.page_source 9 with open('./豆瓣.html','w',encoding='utf-8')as fp: 10 fp.write(page_text)動態點選滾動條獲取豆瓣電影資料