python浏览器自动化_Python—selenium模块(浏览器自动化工具)

selenium可以用来完成浏览器自动化相关的操作,写一些代码制定一些基于浏览器自动化的相关操作(行为动作),当代码执行后,浏览器就会自动触发相关的事件

安装方法:

pip install selenium

下载对应浏览器的驱动程序

谷歌浏览器驱动下载地址:

根据浏览器版本选择对应的驱动版本(网上查)

代码流程:

导入模块:from selenium import webdriver

实例化一个浏览器对象:webdriver.Chrome(executable_path='./chromedriver.exe') ,参数为浏览器驱动路径;

写上要访问的网址:bro.get("https://xueqiu.com/")

浏览器相关操作:

执行js实现滚轮向下

移动到页面最底部(如果是动态加载的数据及第一次加载完成的地方):

js = "window.scrollTo(0,document.body.scrollHeight)"

定位标签,向标签里写参数

tag_input = bro.find_element_by_id('kw')

tag_input.send_keys('人民币')

截屏

bro.save_screenshot('1.png')

获取页面数据

获取动态加载的数据:bro.page_source

基于xpath获取标签:a_tag = bro.find_element_by_xpath("xpath表达式")

点击事件:a_tag.click() 单击鼠标左键一下

网页的前进和后退

bro.back() 后退

bro.forward() 前进

网页前进后退代码

谷歌无头浏览器

如不想感知到浏览器操作,可让浏览器在后台操作

#谷歌无头浏览器

from selenium importwebdriverfrom time importsleepfrom selenium.webdriver.chrome.options importOptions#创建一个参数对象,用来控制chrome以无界面模式打开

chrome_options =Options()

chrome_options.add_argument('--headless')

chrome_options.add_argument('--disable-gpu')

bro= webdriver.Chrome(executable_path='./chromedriver.exe',options=chrome_options)

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

sleep(2)

bro.save_screenshot('1.png')#标签定位

tag_input = bro.find_element_by_id('kw')

tag_input.send_keys('人民币')

sleep(2)

btn= bro.find_element_by_id('su')

btn.click()

sleep(2)print(bro.page_source)

bro.quit()

谷歌无头浏览器代码

动作链

如果定位的标签存在于iframe标签之中,则必须经过switch_to操作在进行标签定位

#动作链

from selenium importwebdriverfrom time importsleepfrom selenium.webdriver importChromeOptionsfrom selenium.webdriver importActionChains

option=ChromeOptions()

option.add_experimental_option('excludeSwitches', ['enable-automation'])

bro= webdriver.Chrome(executable_path='./chromedriver.exe',options=option)

url= 'https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable'bro.get(url=url)#如果定位的标签存在于iframe标签之中,则必须经过switch_to操作在进行标签定位

bro.switch_to.frame('iframeResult')

source_tag= bro.find_element_by_id('draggable')

taget_tag= bro.find_element_by_id('droppable')#创建一个动作连的对象

action =ActionChains(bro)

action.drag_and_drop(source_tag,taget_tag)

action.perform()

sleep(3)#bro.quit()

动作链代码展示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值