Python爬虫_selenium
生活随笔
收集整理的這篇文章主要介紹了
Python爬虫_selenium
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
環境安裝
-
-
下載瀏覽器驅動程序:
-
http://chromedriver.storage.googleapis.com/index.html
-
-
查看驅動和瀏覽器版本的映射關系:
-
http://blog.csdn.net/huilan_same/article/details/51896672
-
應用
from selenium import webdriver from time import sleep #實例化瀏覽器插件 bro = webdriver.Chrome(executable_path='./chromedriver.exe') bro.get('https://www.baidu.com') sleep(2) #標簽定位 tag_input = bro.find_element_by_id('kw') tag_input.send_keys('人民幣') sleep(2)btn = bro.find_element_by_id('su') btn.click() sleep(2) #關閉瀏覽器 bro.quit()雪球網應用
from selenium import webdriver from time import sleep bro = webdriver.Chrome(executable_path='./chromedriver.exe')bro.get('https://xueqiu.com/') sleep(5)#執行js實現滾輪向下滑動 js = 'window.scrollTo(0,document.body.scrollHeight)' bro.execute_script(js) sleep(2) bro.execute_script(js) sleep(2) bro.execute_script(js) sleep(2) bro.execute_script(js) sleep(2) #定位到加載更多按鈕 a_tag = bro.find_element_by_xpath('//*[@id="app"]/div[3]/div/div[1]/div[2]/div[2]/a') a_tag.click() sleep(5) #獲取當前瀏覽器頁面數據(動態) print(bro.page_source)bro.quit()PhantomJs是一款無可視化界面的瀏覽器(免安裝) 已停止更新? 不建議使用?
from selenium import webdriver from time import sleep bro = webdriver.PhantomJS(executable_path=r'\phantomjs-2.1.1-windows\bin\phantomjs.exe')bro.get('https://xueqiu.com/') sleep(2)#截屏 bro.save_screenshot('./1.png') #執行js實現滾輪向下滑動 js = 'window.scrollTo(0,document.body.scrollHeight)' bro.execute_script(js) sleep(2) bro.execute_script(js) sleep(2) bro.execute_script(js) sleep(2) bro.execute_script(js) sleep(2) bro.save_screenshot('./2.png') # a_tag = bro.find_element_by_xpath('//*[@id="app"]/div[3]/div/div[1]/div[2]/div[2]/a') # bro.save_screenshot('./2.png') # a_tag.click() sleep(2) #獲取當前瀏覽器頁面數據(動態) print(bro.page_source)bro.quit()
谷歌無頭瀏覽器
from selenium import webdriver from time import sleep from selenium.webdriver.chrome.options import Options # 創建一個參數對象,用來控制chrome以無界面模式打開 chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu')bro = webdriver.Chrome(executable_path='./chromedriver.exe',options=chrome_options) bro.get('https://www.baidu.com') sleep(2) bro.save_screenshot('1.png') #標簽定位 tag_input = bro.find_element_by_id('kw') tag_input.send_keys('人民幣') sleep(2)btn = bro.find_element_by_id('su') btn.click() sleep(2)print(bro.page_source) bro.quit()動作鏈
from selenium import webdriver from time import sleep from selenium.webdriver import ActionChains bro = webdriver.Chrome(executable_path='./chromedriver.exe') url = 'https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable' bro.get(url=url) #如果定位的標簽存在于iframe標簽之中,則必須經過switch_to操作在進行標簽定位 bro.switch_to.frame('iframeResult') source_tag = bro.find_element_by_id('draggable') #創建一個動作連的對象 action = ActionChains(bro) action.click_and_hold(source_tag)for i in range(4):#perform表示開始執行動作鏈action.move_by_offset(20,0).perform()sleep(1) bro.quit()?selenium規避被檢測識別
現在不少大網站有對selenium采取監測機制。比如正常情況下我們用瀏覽器訪問淘寶等網站的 window.navigator.webdriver的值為undefined。而使用selenium訪問則該值為true。
只需要設置Chromedriver的啟動參數即可解決問題。在啟動Chromedriver之前,為Chrome開啟實驗性功能參數 excludeSwitches,它的值為['enable-automation']
from selenium.webdriver import Chrome from selenium.webdriver import ChromeOptionsoption = ChromeOptions() option.add_experimental_option('excludeSwitches',['enable-automation']) driver=Chrome(options=option)?
轉載于:https://www.cnblogs.com/z1115230598/p/10987165.html
總結
以上是生活随笔為你收集整理的Python爬虫_selenium的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot RabbitMQ
- 下一篇: JS中的NaN和isNaN,简直是双重人