selenium 对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作
什么是selenium?
是python的一个第三方库, 对外提供的接口可以操作浏览器, 然后让浏览器完成自动化的操作
环境的安装:
1.pip install selenium
2.获取某一个浏览器的驱动程序(以谷歌浏览器为例)
驱动程序安装包: 链接: https://pan.baidu.com/s/1x6ZOf-poIHYcOexdG9yDcA 提取码: c589 复制这段内容后打开百度网盘手机App,操作更方便哦
谷歌浏览器驱动下载地址:http://chromedriver.storage.googleapis.com/index.html
下载的驱动程序必须和浏览器的版本统一,大家可以根据https://www.cnblogs.com/wj12312/p/10108917.html版本映射表进行对应
代码介绍:
导包:from selenium import webdriver
创建浏览器对象,通过该对象可以操作浏览器: browser = webdriver.Chrome(r'驱动路径')
具体实现代码如下:
1 from selenium import webdriver 2 from time import sleep 3 4 # 创建一个浏览器对象,将驱动程序加载到浏览器中 5 chrome_obj = webdriver.Chrome(executable_path=r'C:\Users\13584\Desktop\驱动程序\chromedriver.exe') 6 # 浏览器对象执行get方法相当于手动打开对应的url网址 7 chrome_obj.get('https://www.baidu.com') 8 sleep(2) 9 # 使用开发者工具定位到要输入的文本框,拿到该标签的属性 10 input_text = chrome_obj.find_element_by_id('kw') 11 # 在文本框中录入关键字相当于手动输入关键字 12 input_text.send_keys('python') 13 sleep(2) 14 # 使用开发者工具定位到要输入的文本框,拿到该标签的属性 15 btn = chrome_obj.find_element_by_id('su') 16 # 相当于手动点击按钮 17 btn.click() 18 sleep(2) 19 # 这里可以进行别的代码,比如获取最终页面的源码数据 20 chrome_obj.quit()
谷歌无头浏览器
由于PhantomJs最近已经停止了更新和维护,所以推荐大家可以使用谷歌的无头浏览器,是一款无界面的谷歌浏览器。
代码如下:
只需提前创建一个参数对象,用来控制chrome以无界面模式打开
1 from selenium import webdriver 2 from selenium.webdriver.chrome.options import Options 3 from time import sleep 4 5 # 创建一个参数对象,用来控制chrome以无界面模式打开 6 nohead_chrome = Options() 7 nohead_chrome.add_argument('--headless') 8 nohead_chrome.add_argument('--disable-gpu') 9 10 # 驱动程序路径 11 path = r'C:\Users\13584\Desktop\驱动程序\chromedriver.exe' 12 13 # 创建浏览器对象 14 browser = webdriver.Chrome(executable_path=path, chrome_options=nohead_chrome) 15 16 url = 'https://www.baidu.com/' 17 browser.get(url) 18 sleep(3) 19 20 browser.save_screenshot('baidu.png') 21 22 browser.quit()