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

五、XPath实战:快速定位网页元素

分析网站本节我们来爬取豆瓣电影,在实战开始前,我们需要搞懂爬取的流程,在清楚爬取的步骤后,我们方可事半功倍导入需要的库分析获取网站URL获取HTML页面etree解析使用Xpath插件进行测试标签编写Xpath...,原因如下,前面有一些无用的数据,需要清除获取评论者和评分commenter = html.xpath('//header/a/span/text()')[0]rank = html.xpath('//..."User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome..."User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome...提取数据返回结果是列表,后续操作需要使用列表操作总结Xpath的主要流程可以用下图表示Xpath插件链接:https://pan.baidu.com/s/1Pn3dmJgJADIUKcjsDs8cJw?

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

【说站】XPath定位方法,chrome浏览器中查看html元素的方法

经常用火车头采集器的站长朋友,可能会遇到需要需要使用Xpath方式获取地址的方法来采集网址。今天品自行说一下如何用Chrome浏览器查看html元素,进行XPath定位,找到XPath路径。...Chrome DevTools是内置在Google Chrome浏览器中的一个网页调试工具,也叫作开发者工具,不管是小白还是大神用这款软件能够极大提高网页调试效率。...找到需要定位元素所在的位置,鼠标放在右侧元素所在位置的代码所在处,代码会高亮显示,右键“Copy”》“Copy XPath”(也可以选择Copy Xpath,前者是相对路径,后者是绝对路径),下面是复制下来的...//*[@id="nav"]/ul[1]/li[6]/a 这里简单说明一下,这句XPath代码的意思是,定位到id="nav"的div标签下面第一个ul标签下的第六个li标签下的a标签,具体看截图所示代码理解这句话...另外:貌似目前好多浏览器都有这个功能,比如搜狗浏览器就是在高速模式下打开网页》右键,选择“审查元素”,也可以打开搜狗浏览器的类似开发者工具,然后定位元素,右键“Copy”》“Copy XPath”也可以搞定这个问题

3.4K10

xpath定位随机元素之starts-with的用法

相信有一部分朋友在做UI自动化的时候,会遇到有些元素,明明这次定位到之后,到时重新进入页面,里面的元素值就变样了。...下面我们来看看如何定位随机生成的元素~~ starts-with 如图,这个是我们公司的项目,在处理一个勾选框的时候,里面的id元素是随机生成的,我们可以使用xapth中提供的starts-with方法...,首先定位到 li 这个标签下,然后找到id的元素,可以看到id后面的那串数字都是随机生成的,每次进入页面都不一样,但是我发现前面的“cascader-menu”内容是固定的,因此我们可以使用starts-with...找元素内容从“cascader-menu”开始的元素 ends-with xpath中也提供了ends-with的方法,使用方法跟starts-with相同,它是以某字符串结尾的元素。...conatins //div[1]/div/div[3]//li[contains(@id, "cascader-menu")] [1] 使用xpath中的contains方法,也是可以的~大家可以根据需要结合使用

1.5K10

网页元素竟然无法定位......

最近接了个项目,网页元素定位比以往的要全乎许多,多种多样的情况都遇到了,初级高级都用到了,最简单的初级比如直接通过id,name,class来定位获取,高级一点比如模糊查找,模糊匹配,前后查找等等。...今天要说一点,关于页面内嵌套的元素查找,以前的项目比较单一,没有遇到什么特别棘手的,最近就遇到了,我能在Chrome浏览器F12开发者模式下通过Xpath或者CSS定位到这个元素,但是当我在运行在脚本中的时候...,搞了一上午(也应该多查下资料,不要在这里死磕)死活定位不到我要的元素,我就奇怪了,为什么会定位不到呢,是电脑出现问题还是脚本出现什么问题?...好了,那下面就来总结一下关于Selenium 切换Iframe和切换窗口(Java 和Python) Java进入Iframe: ? Python进入Iframe: ?...Python切换窗口:(直接切换) ? ----

1.6K50

关于python中的xpath解析定位

/div/p丨//span 选取所有属于article元素的div元素的p元素以及文档中所有的 span元素 补充: 相邻元素定位, 前一位: preceding-sibling::div[1] 后一位...补充知识:使用Xpath定位元素(和元素定位相关的Xpath语法) 本文主要讲述Xpath语法中,和元素定位相关的语法 第一种方法:通过绝对路径做定位(相信大家不会使用这种方式) By.xpath(...“html/body/div/form/input”) 第二种方法:通过相对路径做定位 两个斜杠代表相对路径 By.xpath(“//input//div”) 第三种方法:通过元素索引定位...:使用前集中方法的组合 By.xpath(“//input[@id=’kw1′]//input[start-with(@id,’nice’]/div[1]/form[3]) 以上这篇关于python...中的xpath解析定位就是小编分享给大家的全部内容了,希望能给大家一个参考。

2K40

Python爬虫Chrome网页解析工具-XPath Helper

1.png 之前就说过Python爬虫中Xpath的用法,相信每一个写爬虫、或者是做网页分析的人,都会因为在定位、获取XPath路径上花费大量的时间,在没有这些辅助工具的日子里,我们只能通过搜索HTML...源代码,定位一些id,class属性去找到对应的位置,非常的麻烦,今天推荐一款插件Chrome中的一种爬虫网页解析工具:XPath Helper,使用了一下感觉很方便,所以希望能够帮助更多的Python...爬虫爱好者和开发者 插件简介 XPath Helper插件是一款免费的Chrome爬虫网页解析工具,可以帮助用户解决在获取XPath路径时无法正常定位等问题 安装了XPath Helper后就能轻松获取...,然后进行安装即可 使用插件 1、打开某个网站,我这以本站首页为例,获取腾讯云的这篇文章的标题,打开审查元素,找到拷贝目标元素XPath 2.png 获取目标元素XPath 2、直接使用快捷键Ctrl...,这样并不适合程序批量处理,我们还是需要修改一些类似于*的标记来匹配任何元素节点等 合理的使用Xpath,还是能帮我们省下很多时间的,更多XPath语法可以看我之前的文章Python爬虫之XPath语法和

3.5K30

python---定位元素

1.定位元素:以百度输入框和搜索为例子 (1)id定位 :id属性在html文档中是唯一的 find_element_by_id()方法通过id属性定位元素 (2)name定位 find_element_by_name...()方法 (3)class定位 find_element_by_class_name()方法 (4)tag定位:tag往往用来定义一类功能,通过tag识别某个元素的概率很低 find_element_by_tag_name...find_element_by_link_txt("新闻") find_element_by_link_txt()方法通过元素标签对之前的文本信息来定位元素 (6)partial link定位:是对link...find_element_by_partial_link_text()方法通过对元素标签对之间的部分文本信息来定位元素 #coding=utf-8 from selenium import webdriver...") //定位百度输入框,并输入python driver.find_element_by_id("su").click() //定位【百度一下】按钮,发送单击事件 #driver.find_element_by_link_text

80110

python+selenium-元素定位

最近在学习web自动化测试,web自动化测试中元素定位是基本功也是很重要的一环,常用的元素定位方式网上都有很多的,一般采用强大的xpath方式来定位xpath中又包含了很多其他方法。...当然,在学习元素定位之前,需要要对前端要有一定的了解,比如HTML,CSS 百度输入框 ?...xpath元素定位的主要方法 首先要了解xpath中一些常用的语法规则和常用符号的意义,比如双斜杠// 单斜杠/ 星号* 等等 1. ...,显然这种方式比绝对路径更为方便,但若这个页面中还存在一个一样的相对路径,这个时候可能相对路径就会出错,因此仅靠这种方法写并不实用 3.使用元素索引定位 比如在上图的百度的页面中,标签form 下边有7...("//input[strats-with(@name,'wd')]"),表示:找到一个input节点,它的特征是有一个以 wd开头的name属性,注意是starts,有个s,还有python+selenium

1.5K10

web自动化02-常见元素定位(不含xpath和css)

XPath(通用) CSS(通用) ① 元素定位方法—id方法   id定位就是通过元素的id属性来定位元素,id必须是唯一的,前提:元素有id属性   当元素存在id属性时,优先使用id方法定位元素...,输入密码:123456 3、3秒后关闭浏览器窗口 补充:输入内容方法:元素对象.send_keys("内容") ②元素定位方法—name方法   name定位就是根据元素name属性来定位,name的属性值是可以重复的...,定位元素的方法执行时,默认只会获取第一个符合要求的特征对应的元素 因此,定位元素时需要尽量保证使用的特征值能够代表目标元素在当前页面的唯一性 查看元素属性数量: 1、在代码区域使用快捷键 Ctrl +...F 2、输入目标元素属性值           回车查看数量 ③元素定位方法—class_name方法   class_name定位是根据元素class属性值来定位元素,class定义元素的样式   ...,一般做精确定位时,都不会选择tag_name ⑤元素定位方法— 1、link_text定位 2、link_partial_link_text定位 1、link_text定位:只针对超链接元素,并且需要出入超链接的全部文本信息

19530

XPath元素定位常用的5种方法(相对路径)

一、XPath定位 定位 说明 //ul/* ul的所有子元素 //input[2] 第2个input元素 //input[last() 最后一个input元素 input[position()< 3]...=属性值]1、使用标签名+节点属性定位 2、组合元素索引(下标)定位 find_element_by_xpath("//*[@id='J_login_form']/*/*/input[2]") 3...二、XPath定位验证 1、验证XPath定位元素是否正确,可以在Google Chrome的elements或console中进行验证 在需要定位的页面,按F12后,切换至elements列下,按下Ctrl...+f键,输入XPath表达式 在需要定位的页面,按F12后,切换至console列下,输入表达式。...语法是:$x("your_xpath_selector") 2、表达式正确,元素定位正确时,会查找出该元素,如下图: 3、未定位准确,找不到该元素,查找结果为空,如图: 4、表达式不正确,无法正常识别情况

5.4K30

python appium笔记(二):元素定位

#这里的示例是用android来说明的,xpath应该是通用的,resource-id不太清楚,没配过IOS的环境 #环境配置和一些参数的意思不清楚可以看我上一篇python appium笔记(一) (...一)说明 主要说明下面2种方式,其实感觉通过xpath,不管selenium还是appium,应该能定位全部元素了。...1、resource-id:定义了resource-id,并且唯一的情况下,可以使用这种方式 2、xpath:任何情况下,都可以用xpath进行定位 (二)查看 #做第四步的时候,记得先连真机,并且开启...6、所以可以用xpath定位,把 android.widget.ImageView这些东西当成HTML的标签看就行了。...我,通过xpath定位 19 my = driver.find_element_by_xpath('//android.support.v7.app.ActionBar.Tab[4]//android.widget.ImageView

1.5K10

appium+python自动化58-xpath定位

() 2.如果元素id是唯一的,xpath也可以定位id属性 //*[@resource-id=’id属性’] # 定位 resource-id driver.find_element_by_xpath...() driver.find_element_by_xpath("//*[contains(@resource-id, 'id/home_searchedit')]").click() 组合定位 1.如果一个元素有...(id_desc).click() 层级定位-父定位子 1.如果一个元素,它除了class属性(class属性肯定会有),其它属性啥都没有,这种情况用上面方法就不适用了,这个时候可以找他父元素,通过父亲定位儿子...(sun_fa1).tag_name print(e) 兄弟定位 通过子元素,先找到父元素,再找父元素下的子元素,可以进行兄弟元素定位 ?...,一层一层的往下找,可以通过爷爷元素定位到孙子元素 ?

1.5K50
领券