活动地址:CSDN21天学习挑战赛
目录
pip install selenium

Chrome
点击下载chrome的webdriver: http://chromedriver.storage.googleapis.com/index.html
Firefox
Firefox驱动下载地址为:Releases · mozilla/geckodriver · GitHub
IE
IE浏览器驱动下载地址为:http://selenium-release.storage.googleapis.com/index.html
注意安装驱动的版本应匹配当前浏览器版本
下载好后,将安装包解压放到python安装路径

Chrome:
- from selenium import webdriver
-
- # 浏览器的初始化
- browser = webdriver.Chrome()
- # 发送请求
- browser.get('https://www.baidu.com/')
-
- # 打印页面的标题
- print(browser.title)
-
- # 退出模拟浏览器
- browser.quit() # 一定要退出!不退出会有残留进程
Firefox:
- from selenium import webdriver
-
- # 浏览器的初始化
- browser = webdriver.Firefox()
- # 发送请求
- browser.get('https://www.baidu.com/')
-
- # 打印页面的标题
- print(browser.title)
-
- # 退出模拟浏览器
- browser.quit() # 一定要退出!不退出会有残留进程
Edge:
- from selenium import webdriver
-
- # 浏览器的初始化
- browser = webdriver.Edge()
- # 发送请求
- browser.get('https://www.baidu.com/')
-
- # 打印页面的标题
- print(browser.title)
-
- # 退出模拟浏览器
- browser.quit() # 一定要退出!不退出会有残留进程
Headless模式是Chrome浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有Chrome支持的特性运行我们的程序
- from selenium import webdriver
-
- # 1. 实例化配置对象
- chrome_options = webdriver.ChromeOptions()
- # 2. 配置对象添加开启无界面命令
- chrome_options.add_argument('--headless')
- # 3. 配置对象添加禁用gpu命令
- chrome_options.add_argument('--disable-gpu')
- # 4. 实例化带有配置对象的browser 对象
- browser = webdriver.Chrome(chrome_options=chrome_options)
-
- browser.get('https://www.baidu.com/')
-
- # 查看请求的数据
- print(browser.page_source) # 查看渲染后的数据,就可以Xpath进行解析获取数据了
- print(browser.get_cookies()) # 查看请求页面后的cookies值
- print(browser.current_url) # 查看请求url
-
- # 关闭页面
- browser.close()
- # 关闭浏览器
- browser.quit()
- from selenium import webdriver
- from selenium.webdriver.common.by import By
-
- chrome_options = webdriver.ChromeOptions()
- chrome_options.add_argument('--headless')
- browser = webdriver.Chrome(chrome_options=chrome_options)
- url = 'https://www.xxx.com/'
- browser.get(url)
- html_str = browser.page_source
若访问网址时返回以下html_str:
- <div class="panel">
- <div class="panel-heading">
- <h4>Helloh4>
- div>
- <div class="panel_body">
- <ul class="list" id="list-1" name="element">
- <li class="element">Fooli>
- <li class="element">Barli>
- <li class="element">Jayli>
- ul>
- <ul class="list list-small" id="list-2">
- <li class="element">Fooli>
- <a href="https://www.baidu.com">百度官网a>
- <li class="element">Barli>
- ul>
- div>
- div>
- from selenium.webdriver.common.by import By
-
- # 获取第一个元素
- browser.find_element(by=By.ID, value="list-1")
- # 获取多个元素
- browser.find_elements(by=By.ID, value="list-1")
- # 获取第一个元素
- browser.find_element(by=By.CLASS_NAME, value="element")
- # 获取多个元素
- browser.find_elements(by=By.CLASS_NAME, value="element")
- # 返回标签为li,id为element的所有元素
- browser.find_element(by=By.XPATH, value="//li[@id='element']")
- browser.find_elements(by=By.XPATH, value="//li[@id='element']")
- # 返回标签为li,id为element的所有元素
- browser.find_element(by=By.XPATH, value="//li[@id='element']")
- browser.find_elements(by=By.XPATH, value="//li[@id='element']")
- # 获取一个元素
- browser.find_element(by=By.PARTIAL_LINK_TEXT, value="Fo")
- # 获取多个元素
- browser.find_elements(by=By.PARTIAL_LINK_TEXT, value="Fo")
- # 获取一个元素
- browser.find_element(by=By.TAG_NAME, value="li")
- # 获取多个元素
- browser.find_elements(by=By.TAG_NAME, value="li")