python中selenium使用

一、简介

我们模拟登陆用的是selenium库,selenium是一个自动化测试工具,在爬虫中通常用来进行模拟登陆。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,同时Selenium也支持多种语言开发,比如 Java,C,Ruby、Python等等。

二、安装

安装selenuim包
pip install selenuim

三、下载驱动器

驱动器是我们在通过selenium模拟用户操作时需要的一个工具,我这里用的是Chromedriver(谷歌浏览器驱动,对应谷歌浏览器),下面是Chrome、Firefox、Safari等浏览器驱动的下载地址

【Chrome驱动下载地址】

【Firefox驱动下载地址】

【Safari驱动下载地址】

下载完成后我们有两种调用驱动器的方法,一种是把驱动器放到py文件同一文件夹下,另外一种就是将驱动器放到Python的安装目录下,以下是我的Python安装目录
在这里插入图片描述

注:网上流传比较广的方法是将驱动器加到环境变量中,但是我试了好像不怎么管用依然会报错,所以我就不放到这里(实践过确实有效的童鞋,可以在文章下方留言,在此感谢你的分享)

四、简单实例

来一段代码让我们直观的理解一下selenium吧

from selenium import webdriver
 
driver = webdriver.Chrome()
driver.get('http://www.baidu.com/')

运行代码,我们可以看到跳出如下的浏览器界面

下面我们将继续完善代码来实现自动化,在搜索框中输入“明天依旧可好”–>点击搜索结果的第一条

time.sleep(1)
driver.find_element_by_xpath("//input[@name='wd']").send_keys("明天依旧可好")
time.sleep(2)
driver.find_element_by_xpath("//div[@class='result c-container ']//h3/a").click()

五、配置浏览器

我们在使用 selenium 时,可能需要对 chrome 做一些特殊的设置,以完成我们期望的浏览器行为,比如最大化窗口,无窗口启动 等动作。这些需要selenium的ChromeOptions来帮助我们完成

(一)配置浏览器

chromeoptions 是一个方便控制 chrome 启动时属性的类,主要提供如下的功能:

设置 chrome 二进制文件位置 (binary_location)
添加启动参数 (add_argument)
添加扩展应用 (add_extension, add_encoded_extension)
添加实验性质的设置参数 (add_experimental_option)
设置调试器地址 (debugger_address)
常用设置举例:

#设置无窗口

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://blog.csdn.net/qq_38251616'

1.add_argument常用系列

无窗口:- -headless
启动就最大化:- -start-maximized
设置窗口大小:- -window-size=100,100
禁用弹出拦截:- -disable-popup-blocking
禁用插件:- -disable-plugins
禁用图像:- -disable-images
伪装iphone登录:- -user-agent=iphone
伪装android:- -user-agent=android
设置语言为简体中文:- -lang=zh-CN
使用给定的 User-Agent 字符串:- -user-agent=“这里填写User-Agent”
禁用Javascript:- -disable-javascript
指定用户文件夹User Data路径:- -user-data-dir="[PATH]"
注释:两个“-”中间是没有空格的,由于排版原因我在中间加了一个空格。

(二)添加代理

chrome_options = webdriver.ChromeOptions()
#设置代理
chrome_options.add_argument('--proxy-server=http://{ip}:{port}')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://blog.csdn.net/qq_38251616')

六、定位标签

定位方法示例:

#获取网页中的h1标签
h1 = driver.find_element_by_name("h1")
#获取网页中所有的h1标签
h1_list = driver.find_elements_by_name("h1")

单个元素选取:

find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值