selenium简单应用

selenium是python包中偏向于测试的自动化工具
它能控制浏览器自动打开页面,进行一系列操作

pip install selenium

在写代码之前,要明确使用什么浏览器来打开网页,这里使用的是Chrome,
首先要下载对应版本的浏览器驱动 地址:http://chromedriver.storage.googleapis.com/index.html
检查自己chrome版本 帮助-关于chrome,查看自己chrome版本,下载对应版本的驱动,解压,放到python解释器所在的文件夹
from selenium.webdriver import Chrome

web = Chrome()

web.get('https://www.baidu.com')

三行代码,运行~

上面只是打开了网页,我想要操作,怎么办呢

老方法:好像语法过时了,不过暂时还能用
el = web.find_element_by_xpath('这里是你想点按钮的xpath')      # 找到元素
el.click()                                                  # 点击事件


新的语法:
不过要导入By
from selenium.webdriver.common.by import By


el = web.find_element(by=By.XPATH, value='你想点按钮的xpath')   新的查找元素的方法
el.click()
如果你不想点击按钮,想输入内容搜索,怎么办?
from selenium.webdriver.common.keys import Keys

e2 = web.find_element(by=By.XPATH, value='搜索框的xpath').send_keys('python', Keys.ENTER)

这句代码就等于 在搜索框里输入python,回车。

以上,已经能简单使用自动化工具操作浏览器了

但是做爬虫要的是网页,从中提取想要的信息

lis = web.find_elements(by=By.XPATH, value='想要的list的xpath')

到这里,等于拿到了网页源码,后面用正则、xpath,等方法匹配到想要的信息就行了

如果点击按钮跳转到新的窗口,那浏览器视角还是停留在当前窗口呀

# 获取窗口之后打开新窗口切换到新窗口
web.switch_to.window(web.window_handles[-1])
# 关闭当前窗口
web.close()

# 把视角回到之前的窗口中
web.switch_to.window(web.window_handles[0])

可以手动切换浏览器窗口,已完成不用网页之间的操作,之后再关闭窗口。

不想看到浏览器弹出来,能不能让浏览器隐藏起来自己完成操作。设置无头浏览器

from selenium.webdriver.chrome.options import Options

# 设置无头,不显示浏览器窗口
opt = Options()
opt.add_argument("--headless")
opt.add_argument("--disbale-gpu")

web = Chrome(options=opt)

'''
    # 设置隐藏驱动浏览器
    opt = Options()
    opt.add_argument('--disable-blink-features=AutomationControlled')
'''

在Linux里使用一般都用无头的吧,我自己是用的ubuntn,有图形化界面,可以用无头,也可以不设置。

深入学习之后再补充吧!

posted @ 2022-05-24 17:57  木_糖  阅读(94)  评论(0编辑  收藏  举报