- 本文地址: https://www.yangdx.com/2021/03/181.html
- 转载请注明出处
环境要求
1、安装 python3 环境后,用 pip 安装 selenium 包:pip install selenium
2、安装 Google Chrome 浏览器,我安装的版本是:89.0.4389.90(64 位)
3、安装 chromedriver,官网下载地址是 https://chromedriver.storage.googleapis.com/index.html,也可以从国内镜像下载 https://npm.taobao.org/mirrors/chromedriver 。注意,上图 Chrome 浏览器的主版本号是89,下载的 chromedriver 主版本号要一致:
Windows 系统下载 chromedriver_win32.zip,将压缩包内的 chromedriver.exe 文件放置 PATH 环境变量所指目录,如 C:\Windows 目录。
示例代码
功能说明:模拟使用 Chrome 浏览器打开搜狗主页,输入关键词“水果”,点击搜索按钮,停顿3秒后,获取页面的搜索结果数量。
import time
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
def get_driver():
opt = webdriver.ChromeOptions()
opt.add_argument('--no-sandbox') # 以最高权限运行
# opt.add_argument('--headless') # 无头浏览器
opt.add_argument('--disable-gpu') # 禁用GPU加速
opt.add_argument('--window-size=1440,900') # 设置窗口分辨率
driver = webdriver.Chrome(options=opt)
driver.set_page_load_timeout(60) # 设置页面加载超时
driver.set_script_timeout(30) # 设置页面异步js执行超时
return driver
def open_page():
driver = get_driver()
try:
driver.get('https://www.sogou.com/')
except Exception as err:
driver.quit()
print('URL加载失败:' + str(err))
return
try:
# 页面存在这个元素加载成功
driver.find_element_by_css_selector('#query')
except NoSuchElementException:
filename = str(int(time.time() * 100000)) + '.png'
driver.save_screenshot(filename) # 生成页面截图
driver.quit()
print('页面加载失败,截图: ' + filename)
return
try:
# 输入文字
driver.find_element_by_css_selector('#query').send_keys('水果')
# 点击提交
driver.find_element_by_css_selector('#stb').click()
except Exception as err:
filename = str(int(time.time() * 100000)) + '.png'
driver.save_screenshot(filename)
driver.quit()
print('异常:' + str(err))
return
# 休眠3秒
time.sleep(3)
try:
# 页面存在这个元素则表示提交成功
driver.find_element_by_css_selector('.num-tips')
except NoSuchElementException:
filename = str(int(time.time() * 100000)) + '.png'
driver.save_screenshot(filename)
print('提交失败,截图: ' + filename)
else:
msg = driver.find_element_by_css_selector('.num-tips').get_attribute('innerText')
print(msg)
finally:
driver.quit()
if __name__ == '__main__':
open_page()
截图加以说明:
运行结果:
快来评论一下吧!
发表评论