专栏首页赖权华的笔记Python+Selenium笔记(一):环境配置+简单的例子

Python+Selenium笔记(一):环境配置+简单的例子

#环境配置基于windows操作系统

#学习selenium要有一些HTML和xpth的基础,完全不会的建议先花点时间学点基础(不然元素定位,特别是xpth可能看的有点懵)

#HTML :  http://www.runoob.com/html/     #xpth:  http://www.runoob.com/xpath

(一)  环境配置

(1)执行下面的命令(前提:已经安装python环境,可以参考之前发的python笔记(一))

pip install -U selenium

(2)http://docs.seleniumhq.org/download/   (网站打不开的话就FQ)

去下载Mozilla GeckoDriver(因为我暂时用火狐测试,所以下载这个),解压后放到任意目录下,然后在系统变量path中加上解压后的路径(我在2台电脑上试了下,一个放在任意目录,一个放到python的安装目录,反正都能用。)

(3)之后如果创建浏览器驱动实例还是报错的话(可能是浏览器版本的问题,我python3.6+selenium3.9+火狐47+Mozilla GeckoDriverV0.19.1就报错,火狐换成58就不会了)

(二)  简单的例子

#导入webdriver from selenium import webdriver #FirefoxBinary--导入2进制文件所在的位置 from selenium.webdriver.firefox.firefox_binary import FirefoxBinary #指定火狐浏览器的二进制路径 firefox = FirefoxBinary(r"C:\Program Files (x86)\Mozilla Firefox\firefox.exe") driver = webdriver.Firefox(firefox_binary=firefox) #创建火狐浏览器的驱动实例 driver.implicitly_wait(2) #设置等待时间(定义执行步骤的超时时间) driver.maximize_window()  #最大化浏览器

driver.get("https://www.cnblogs.com/") #打开博客园首页 search_field = driver.find_element_by_id('zzk_q') #通过id定位博客园首页的搜索框 search_btn =driver.find_element_by_class_name('search_btn') #通过class定位博客园首页的查询按钮 search_field.clear() #清空搜索框的值(如果有) search_field.send_keys("python") #在搜索框中输入查询条件 search_btn.click() #点击查询按钮 # search_field.submit() #选取<h3><a>开始 ,</a>结束之间的值,返回一个列表 products = driver.find_elements_by_xpath('//h3[a/@target="_blank"]/a') #迭代列表products,输出text的值 for p in products:     print(p.text) #选取<a target="_blank">节点的值,返回一个列表 pro = driver.find_elements_by_xpath('//h3/a[@target="_blank"]') #迭代输出href属性的值 for p in pro:     print(p.get_attribute('href')) #关闭浏览器 driver.quit()

(三)  输出如下

第二步骤中的xpth其实主要定位的就是下面这些

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JS笔记(二):对象

    free赖权华
  • Python+Selenium笔记(十四)鼠标与键盘事件

     (一) 前言 Webdriver高级应用的API,允许我们模拟简单到复杂的键盘和鼠标事件,如拖拽操作、快捷键组合、长按以及鼠标右键操作,都是通过使用webdr...

    free赖权华
  • Python+Selenium笔记(十三):Page Object设计模式

    (一) 前言 简单的说就是分为2层,页面class 和测试class。 页面class:分为父类和子类(子类指具体的页面,每一个页面都创建一个类),父类中定义公...

    free赖权华
  • ZGC垃圾收集器原理分析

    zgc只支持64位系统,然后最大支持4T的堆内存,64位指针只需要使用42位就可以寻址4TB的空间,这意味着有多余的22位可以利用。zgc利用了4位,分别用来表...

    歪歪梯
  • 代码整洁之道--边界

    静儿
  • Spring注解式编程之AnnotatedBeanDefinitionReader

    其中AnnotatedBeanDefinitionReader只做了两件事:注册内置BeanPostProcessor;注册相关BeanDefinition

    OPice
  • 好久不用 jQuery, 来复习一下

      jQuery 是一个优秀的 JavaScript 库,是一个由 JohnResig 创建于 2006 年 1 月的开源项目。现在的 jQuery 团队主要包...

    Demo_Null
  • 网红“AI大佬”被爆论文剽窃,Jeff Dean都看不下去了

    Siraj 论文链接:http://vixra.org/pdf/1909.0060v1.pdf

    AI科技大本营
  • CSS selectors level 4

    选择器是 CSS 的核心部分。你用来做一些操作比如说选择某种类型的所有元素,就像下面这样:

    icepy
  • 观察者模式(Observer)概要 原

    有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它...

    LeoXu

扫码关注云+社区

领取腾讯云代金券