首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python无头爬虫Selenium系列(01):像手工一样操作浏览器

,这个就是"浏览器驱动" ---- 万事俱备 看过我的相关教学文章的小伙伴都知道,我很喜欢从语义角度去理解学习一个库。...注意,每次重复执行 webdriver.Chrome() 都会启动一个新的浏览器 ---- 鼠标移到输入框,点击一下,然后输入内容"爬虫": 这里的问题是,怎么用代码表达"鼠标移到输入框,点击一下"?...有2种常见的方式,css 选择器 或者 xpath selenium 文档中强烈推荐你使用 css 选择器 我们选用 css 选择器,因此,在右区的 input 标签上,按鼠标右键,选 "copy" ,...('#su') act_btn.click() 行7:用 css 选择器找到按钮 行8:act_btn.click() 方法,对元素模拟点击 现在浏览器显示的页面,就有我们需要的所有的内容 ----...与 h3 之间有其他任意多的其他标签嵌套 h3 与 a 之间,用">" 分开,表示父子关系,就是 a 标签就是在 h3 标签包围 ---- 调用代码如下: wd = webdriver.Chrome(

2.4K20

Python无头爬虫Selenium系列(01):像手工一样操作浏览器

深入一点的流程图如下: 不同厂商不同版本的浏览器,都需要一个对应版本的"浏览器驱动" ---- "怎么案例都没开始,就在说 selenium 的不是呢?我到底还学不学?"...,这个就是"浏览器驱动" ---- 万事俱备 看过我的相关教学文章的小伙伴都知道,我很喜欢从语义角度去理解学习一个库。...有2种常见的方式,css 选择器 或者 xpath selenium 文档中强烈推荐你使用 css 选择器 我们选用 css 选择器,因此,在右区的 input 标签上,按鼠标右键,选 "copy" ,...('#su') act_btn.click() 行7:用 css 选择器找到按钮 行8:act_btn.click() 方法,对元素模拟点击 现在浏览器显示的页面,就有我们需要的所有的内容 ----...与 h3 之间有其他任意多的其他标签嵌套 h3 与 a 之间,用">" 分开,表示父子关系,就是 a 标签就是在 h3 标签包围 ---- 调用代码如下: wd = webdriver.Chrome(

3.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    彻底学会Selenium元素定位

    你好,我是测试蔡坨坨。 最近收到不少初学UI自动化测试的小伙伴私信,对于元素的定位还是有些头疼,总是定位不到元素,以及不知道用哪种定位方式更好。...Selenium4,推荐先阅读往期文章「Selenium 4 有哪些不一样?」。...Xpath不仅可以用于Selenium,还适用于Appium,是一个万能的定位方式。 Xpath有一个缺点,就是速度比较慢,比CSS_SELECT要慢很多,因为Xpath是从头到尾一点一点去遍历。...CSS的选择策略也多很多种,但是无论选择哪一种选择策略都是用同一种定位方法。...,它会等待图片资源加载完成后进行查找,也就是红线的位置,所以css_selector比xpath更稳定,当你使用xpath定位不到元素时,不妨尝试使用css_selector。

    7.2K32

    Python+Selenium笔记(六):元素定位

    (一)  前言 Web应用以及包含超文本标记语言(HTML)、层叠样式表(CSS)、JS脚本的WEB页面,基于用户的操作(例如点击提交按钮),浏览器向WEB服务器发送请求,WEB服务器响应请求,返回给浏览器...HTML及相关的JS、CSS、图片等资源,浏览器使用这些资源生成WEB页面,其中包含WEB各种视觉元素,例如文本框、按钮、标签、图标、复选框、下拉框、图片等,这些视觉元素或控件都被Selenium称为页面元素...(三)  元素定位 就如人工操作时,输入查询条件,然后点击【查询】按钮,前提是首先要知道这个是搜索框,这个是【查询】按钮一样,Selenium在执行功能操作之前,也要先识别这些元素。...要使用CSS选择器,可以参考jquery 语法关于选择器的那部分 http://www.runoob.com/jquery/jquery-selectors.html 注:另外比较特殊的是class属性...,class属性有空格时,空格并不是一般认识中的空格符号,而是代表这个标签有多个class名,定位的时候使用第一个名称,或者不同名称之间用.分开就行了。

    2.8K80

    Python爬虫技术系列-06selenium完成自动化测试V01

    复制对应的css选择器,并选择该课程元素: # 对应的css选择器如下: # div.in-c-el:nth-child(1) > div:nth-child(1) > div:nth-child(1...01).perform() 点击课程后,会弹出一个新的页面–课程页面 5....进入课程页面后,查看页面信息,有一个继续学习的按钮,点击继续学习的按钮,可以进入到视频播放页面。...5.2 切换当前页面,并选择继续学习按钮点击 实现步骤为: 切换当前页面 查看继续学习元素的css选择器,并选择该元素: # 跳转到视频播放窗口 # 1....视频播放页分析与播放实现 6.1视频播放页分析 进入到视频播放页后,点击视频播放按钮,即可播放视频 6.2 视频播放实现 查看css选择器,选择播放按钮元素,并左键单击。

    33370

    Python 自动化指南(繁琐工作自动化)第二版:十二、网络爬取

    对 CSS 选择器语法的全面讨论超出了本书的范围(在参考资料中有一个很好的选择器教程,在),但是这里有一个关于选择器的简短介绍。表 12-2 显示了最常见的 CSS 选择器模式的例子。...用selenium模块控制浏览器 selenium模块让 Python 通过有计划地点击链接和填写登录信息来直接控制浏览器,就好像有一个人类用户在与页面交互一样。...使用selenium,你可以用比requests和bs4高级得多的方式与网页互动;但是因为它启动了一个网络浏览器,如果你只是需要从网上下载一些文件,它就有点慢,很难在后台运行。...点击浏览器按钮 selenium模块也可以通过以下方法模拟点击各种浏览器按钮: browser.back()点击返回按钮。 browser.forward()点击前进按钮。...您可以在提交按钮的WebElement对象上调用send_keys(Keys.ENTER),但是用selenium提交表单有什么更简单的方法呢?

    8.7K70

    8.9 Selenium元素定位方式

    元素定位 元素的定位应该是自动化测试的核心,要想操作一个元素,首先应该识别这个元素象。...webdriver提供了一系列的对象定位方法,常用的有以下几种: id name class name link text partial link text tag name xpath css selector...案例:打开百度首页,在搜索框自动输入“Selenium我要自学网”关键词,然后点击搜索按钮,查看搜索页面。...定位 Selenium极力推荐使用CSS 定位,而不是XPath来定位元素,原因是CSS 定位比XPath 定速度快,特别是在IE浏览器环境 前端开发人员就是用CSS Selector设置页面上每一个元素的样式...,无论那个元素的位置有多复杂,他们能定位到,那我们使用CSS Selector肯定也能非常精准的定位到页面Elements。

    1.3K10

    一文速学-selenium高阶性能优化技巧

    前言最近写的挺多自动化办公的selenium程序没有做优化,执行效率不高,启动浏览器又慢但是又可能出现其他不可控的因素,总结来说虽然放心运行但是又没那么好用,项目是写完了最后还是需要优化结尾的。...这个函数:from selenium.webdriver.support.ui import WebDriverWait比如我们现在需要等待一个弹窗事件,需要等待几秒的弹出时间,但是时间又是不可控的,可能...:使用精确的选择器(如 ID、ClassName)通常会比使用较复杂的选择器(如 XPath、CSS 选择器)更快。...这是因为精确的选择器可以更直接地定位到元素,而复杂的选择器可能需要遍历更多的 DOM 节点。在使用 XPath 或 CSS 选择器时,最好使用尽可能短的路径。...myButton")))# 第一次点击按钮cached_button.click()需要注意的是,这种方法只适用于页面结构在整个会话中保持不变的情况。

    1.1K23

    Python无头爬虫Selenium系列(02):等待机制

    Selenium 的等待机制同样如此,而上述机制中唯一可以变化的就是"查找规则",这体现为 wait.until 的第一个参数接受一个"可调用对象" ---- 终于得到你 这次案例的网页是我简单创建的...,输入 "localhost:8081/web_sp" 出现页面 点击页面上的按钮,下方出现新文本 ---- 现在用代码对这个页面采集,看看网页内容结构。...用"开发者工具",查看元素的标签: 每个新增的内容为一个 div 标签,属性 class 都是 "content" 现在用代码控制 Selenium ,找上述的 div 标签。...但是,我们希望自定义函数能够灵活一点,可以知道 css 选择器 和 条件数量,比如: def finds_by_count(css_selector, num): pass 我们可以利用嵌套函数实现...div 标签,出现3个为止 出来页面后,如果快速点击3下按钮,就能看到结果: 如果10秒内没有出现3个文本,就会超时错误 ---- 总结 用代码控制 selenium 最关键的功能就是"等待机制",

    1.3K20

    Selenium 抓取淘宝商品

    我们可以尝试分析Ajax来抓取了相关数据,但是并不是所有的页面都是可以分析Ajax来就可以完成抓取的,比如淘宝。...所以在这里我们可以直接在页面跳转文本框中输入要跳转的页码,然后点击确定按钮跳转即可到达页码页码对应的页面。...text_to_be_present_in_element,它会等待某一文本出现在某一个节点里面即返回成功,在这里我们将高亮的页码节点对应的CSS选择器和当前要跳转的页码通过参数传递给这个等待条件,这样它就会检测当前高亮的页码节点里是不是我们传过来的页码数...,用for循环将每个结果分别进行解析,在这里每个结果我们用for循环把它赋值为item变量,每个item变量都是一个PyQuery对象,然后我们再调用它的find()方法,传入CSS选择器,就可以获取单个商品的特定内容了...对接PhantomJS 但是此次爬取有个不太友好的地方就是Chrome浏览器,爬取过程必须要开启一个Chrome浏览器确实不太方便,所以在这里我们还可以对接PhantomJS,只需要将WebDriver

    2.9K10

    使用Selenium爬取淘宝商品

    在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取。...但是这个Ajax接口包含几个参数,其中_ksTS、rn参数不能直接发现其规律,如果要去探寻它的生成规律,也不是做不到,但这样相对会比较烦琐,所以如果直接用Selenium来模拟浏览器的话,就不需要再关注这些接口参数了...q=iPad,呈现的就是第一页的搜索结果,如下图所示。 ? 在页面下方,有一个分页导航,其中既包括前5页的链接,也包括下一页的链接,同时还有一个输入任意页码跳转的链接,如下图所示。 ?...所以,直接在页面跳转文本框中输入要跳转的页码,然后点击“确定”按钮即可跳转到页码对应的页面。...CSS选择器,就可以获取单个商品的特定内容了。

    3.7K70

    九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、鼠标操作)

    /selenium 我们点击“Downloads”按钮下载该Selenium扩展包,解压下载的文件后,在解压目录下执行下面的命令进行安装Selenium包。....通过CSS选择器定位元素 该方法是通过CSS选择器(CSS Selectors)定位元素,它将返回第一个与CSS选择器匹配的元素。...(.content) CSS选择器定位方法是比较难的一个方法,推荐读者下来自行研究,同时作者更推荐大家使用ID、Name、XPath等常用定位方法。...首先我们通过火狐浏览器打开百度首页,找到“登录”按钮,并右键鼠标点击“审查元素”,可以看到百度首页“登录”按钮对应的HTML源代码如图11所示。...“登录”按钮节点其实是一个name值为“tj_login”的超链接,我们可以通过下面的代码定位到该节点,再调用click()函数自动点击它,并跳转到登录页面。

    4.8K10

    Python Selenium 爬虫淘宝案例

    前言 在前一章中,我们已经成功尝试分析 Ajax 来抓取相关数据,但是并不是所有页面都可以通过分析 Ajax 来完成抓取。...但是这个 Ajax 接口包含几个参数,其中_ksTS、rn 参数不能直接发现其规律,如果要去探寻它的生成规律,也不是做不到,但这样相对会比较烦琐,所以如果直接用 Selenium 来模拟浏览器的话,就不需要再关注这些接口参数了...q=iPad,呈现的就是第一页的搜索结果: 在页面下方,有一个分页导航,其中既包括前 5 页的链接,也包括下一页的链接,同时还有一个输入任意页码跳转的链接。...所以,直接在页面跳转文本框中输入要跳转的页码,然后点击 “确定” 按钮即可跳转到页码对应的页面。...() 方法,传入 CSS 选择器,就可以获取单个商品的特定内容了。

    96122

    《手把手教你》系列技巧篇(十九)-java+ selenium自动化测试-元素定位大法之By css下卷(详细教程)

    CSS的索引定位与xpath的索引定位有很大不同,我们还以百度首页为例 我们要定位“百度一下”按钮,先定位到“百度一下”元素标签的上级标签,而标签是标签下所有...,如下小视频所示: 3.4多元素共同定位 CSS定位表达式支持多元素选择器,也就是一次可以同时选择多个相同的标签,也可以同时选择多个不同的标签,不同标签间用英文的逗号隔开 具体步骤: 在被测试百度网页中...,按照宏哥在5.2中的方法 (1)查找输入框并输入“北京宏哥”,(2)查找“百度一下”按钮(因为span有好多input,所以宏哥又用了一下id),(3)点击“百度一下”按钮。...这里面要注意一点的就是在是用Firefox的时候,我的逻辑关系是没有错误的,但是Firefox还是会给我报错element not visible。后来换成chrome浏览器,问题就可以解决。...第三:元素定位到一个鼠标事件后才能进行事件触发的位置上:比如,需要鼠标移动到某个区域,元素才可以显示点击的按钮,如果鼠标离开,则相应的事件也没办法触发。

    1.4K30

    Selenium的使用方法简介

    Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。...另外,还有根据XPath、CSS选择器等获取的方式。...比较常见的用法有:输入文字时用send_keys()方法,清空文字时用clear()方法,点击按钮时用click()方法。...所以说有了这个方法,基本上API没有提供的所有功能都可以用执行JavaScript的方式来实现了。 9....对于按钮,可以更改一下等待条件,比如改为element_to_be_clickable,也就是可点击,所以查找按钮时查找CSS选择器为.btn-search的按钮,如果10秒内它是可点击的,也就是成功加载出来了

    5.2K62

    Selenium2+python自动化65-js定位几种方法总结

    前言 本篇总结了几种js常用的定位元素方法,并用js点击按钮,对input输入框输入文本 一、以下总结了5种js定位的方法 除了id是定位到的是单个element元素对象,其它的都是elements返回的是...getElementsByClassName方法 5.通过CSS选择器选取元素 document.querySelectorAll(“css selector") 兼容性:IE8及其以下版本的浏览器只支持...CSS2标准的选择器语法 二、id定位 1.定位博客首页的管理按钮:id="blog_nav_contact" ?...2.js的定位语法里面id定位获取的是单个元素对象,可以直接用click()方法点击元素 ?...4.ByName和ByTagName跟上面class一样,都是定位的一组元素 三、CSS选择器 1.css选择器定位到的也是一组元素,语法跟前面学到的css语法是一样的 ?

    1.3K70

    Selenium

    【简单来说就是编写代码,让机器代替人工进行测试工作】 2.Selenium Selenium是web应用中基于UI的自动化测试框架,支持多平台、多浏览器、多语言。...分别做一下介绍: 2.1,Selenium IDE Selenium IDE一个用于Selenium测试的完成集成开发环境,可以直接录制在浏览器的用户操作,并且能回放,编辑和调试测试脚本。..."); //输入情人节 webDriver.findElement(By.cssSelector("#kw")).sendKeys("情人节"); //点击百度一下的按钮...但是:打开一个新窗口人眼可以看到变化,在自动化测试中,自动化脚本无法直接观察出变化,这个时候自动化脚本通过识别浏览器窗口的属性用句柄(handle)来识别。...答:css选择器效率更高 2.quit 和 close的区别 quit 关闭了整个浏览器,close只是关闭了当前的页面; quit会清空缓存,close则不会;

    20010
    领券