Selenium可以做简单的web页面自动化处理,比如打开一个web页面,在对应输入框输入内容并提交等,算是一款web自动化工具了
前几天接触了一下,感觉挺好玩的,支持Python、Java、JavaScript等工具调用
浅度用了几天(每天工作事儿太多了),这里用一个例子说明一下Selenium的使用
说一下脚本实现的内容:用Selenium打开bing.com,并填充需要搜索的内容,提交并打开一个搜索结果(页面跳转)
我这里用的是python哈,对于python来说,Selenium的安装很简单直接,pip直接install Selenium就行
Selenium需要浏览器支持,chrome国内插件在这里:https://repo.huaweicloud.com/chromedriver/,根据自己chrome的版本下载对应压缩包,并解压到python的环境里,比如我PATH里定义的python第三方工具目录为C:\Users\Eric\AppData\Local\Programs\Python\Python311\Scripts,上边下载的压缩包,解压有chromedriver.exe和LICENSE.chromedriver,将这俩文件拷贝到Scripts下就行
可以用如下python代码验证插件是否安装成功:
from selenium import webdriver
driver = webdriver.Chrome()
上述操作如果能打开本地chrome浏览器,那就说明插件安装好了,就能用python和chrome交互了
ok,我们继续!
我直接贴代码吧,后边再解释
#!/usr/bin/env python3
# coding=gbk
#
# bingSearch.py
#
# Copyright 2026 Eric <13641252229@139.com>
#
import sys
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import random
import json
import time
def websearch(v_searchstr='北京今日天气'):
url='https://cn.bing.com/'
options = webdriver.ChromeOptions()
options.add_experimental_option("useAutomationExtension", False)
options.add_experimental_option("excludeSwitches", ["enable-automation"])
driver = webdriver.Chrome(options=options)
driver.get(url)
print("系统打开中...")
time.sleep(5)
v_element = driver.find_element(By.ID, "sb_form_q")
v_element.clear()
v_element.send_keys(v_searchstr)
v_element.send_keys(Keys.ENTER)
time.sleep(5)
v_result = driver.find_element(By.ID, "b_results")
v_elements = v_result.find_elements(By.TAG_NAME, "a")
v_rand=random.randint(1, 10)
print(v_elements[v_rand].text)
v_elements[v_rand].click()
print('随机搜索链接页面打开中...')
time.sleep(10)
driver.quit()
def main(args):
print('--------python模拟web页面类操作示例---------')
print('--------https://cn.bing.com/搜索示例-------')
v_use=input("请输入搜索内容(默认:'查北京天气'):")
if v_use:
websearch(v_use)
else:
websearch('北京今日天气')
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))
运行没法截图了,大家看我上传的这个视频吧,可以看到我全程什么也没操作,main函数里输入想要查找的关键字(回车默认了一个添加查询的关键字),然后python去调用本机chrome,并在查找框填充查找的关键字-->页面提交搜索-->并在搜索结果里随机点开一个结果链接-->打开新页面
大概这么一个实现逻辑:webdriver打开chrome后,用get方法打开一个web地址,然后用find_element方法查到到需要的页面的元素,并模拟这些页面元素的一些操作(填充、提交、点击等),然后等待新页面加载,再提取页面元素并做后续处理
注意哈,页面的打开、跳转等都需要等待一会儿时间,实际可以根据自身网络&硬件配置更改sleep的时长
这里是一个简单的示例,selenium的使用方法,大家可以去官网看看:https://www.selenium.dev/zh-cn/documentation/ ,什么查询器、交互、定位器、信息、文件上传挺多功能的
感觉,如果这个工具用好了,是不是我们就能做一些web页面的自动化操作了啊
大家觉得怎么样,有应用前景没?