资料参考:Python 网络爬虫的常用库汇总
# 1.导入库
from selenium.webdriver import Chrome
# 2.获得驱动
driver = Chrome(executable_path=r'D:\python\chromedriver_win32\chromedriver.exe')
# 3.1 使用驱动 ,打开网页
driver.get('https://www.baidu.com/')
# 3.2 使用驱动 ,获得 webElement
t_element = driver.find_element_by_tag_name('a')
# 4.处理数据 ,提取元素的href对应的值
print(t_element.get_property('href'))
1.进入官网,查看开发文档学习
https://selenium.dev/documentation/zh-cn/
2.安装selenium。
官网介绍了两种安装方法,我是用了其一。
3.下载浏览器的驱动
下载网址:https://chromedriver.storage.googleapis.com/index.html
下载后:
1.chromedriver.exe放在python的安装目录下面(不用再配置环境变量)
2.chromedriver.exe放在其他目录,设置指定路径
参考:https://jingyan.baidu.com/article/7082dc1c3c4642e40b89bd68.html
4.代码测试:
4.1使用百度自动搜索
# 1.导入库
from selenium.webdriver import Chrome
# 2.获得驱动
driver = Chrome(executable_path=r'D:\python\chromedriver_win32\chromedriver.exe')
# 3.1 使用驱动 ,打开网页
driver.get('https://www.baidu.com/')
# 3.2 使用驱动 ,获得 webElement
t_element = driver.find_element_by_id("kw")#获得输入框元素
t_element2 = driver.find_element_by_id("su")#获得提交按钮元素
# 4.处理获得的元素
t_element.send_keys("python")
t_element2.click()
4.2到达指定页面 使用js
# 1.导入库
from selenium.webdriver import Chrome
# 2.获得驱动
driver = Chrome(executable_path=r'D:\python\chromedriver_win32\chromedriver.exe')
# 3.1 使用驱动 ,打开网页
driver.get('https://www.baidu.com/')
# 3.2 使用驱动 ,执行js脚本
js = 'alert("你好,我是一个警告框!")'#弹窗的js脚本
driver.execute_script(js)#执行js脚本
# 4.处理获得的元素
可能出现报错:(驱动和谷歌浏览器两者都是最新的,应该没问题)
原因的版本号不匹配:
参考:https://blog.youkuaiyun.com/tscaxx/article/details/108445647
下载新的驱动:
谷歌浏览器:版本 68.0.3440.106(正式版本) (64 位)使用 70.0.3538.16 版本驱动测试可用
5.源码简单分析(可参考安装目录,查看文件之间的关系)
5.1 查看驱动对象的一些方法
上面这张截图文件里面的一些方法,是有关浏览器的一些操作,
1.浏览器 刷新,前进、后退等,
2.获取指定html元素(根据id,class等)
3.获取当前页面的所有html:
import time
from selenium.webdriver import Chrome
with Chrome() as browser:
browser.get("http://www.baidu.com")#打开百度
time.sleep(5)
# js = 'alert("你好,我是一个警告框!")'#弹窗的js脚本
# browser.execute_script(js)#执行js脚本
print(browser.page_source)#获取浏览器的页面资源
time.sleep(20)
4.执行js脚本
import time
from selenium.webdriver import Chrome
with Chrome() as browser:
browser.get("http://www.baidu.com")#打开百度
time.sleep(5)
js = 'alert("你好,我是一个警告框!")'#弹窗的js脚本
browser.execute_script(js)#执行js脚本
#print(browser.page_source)
time.sleep(20)
5.其他的看源探索
获取元素后的一些操作,在下面的这个类里面 点击操作或者提交表单操作等
6.待续。。。。。