python爬虫----XPath
1.知道本节点元素,如何定位到兄弟元素
详情见博客
XML代码见下

bt1在文档中只出现一次,所以很容易获取到bt1中内容,那怎么根据<td class='bt1'>来获取bt2中的内容
content_title = driver.find_element_by_xpath("//td[@class='bt1']").text
# 获取content_title的父节点的哥哥节点
content_subtitle = driver.find_element_by_xpath("//td[@class='bt1']/../following-sibling::tr[1]").text
# 获取第二个tr下面td的父节点的弟弟节点
conten_subtitle = driver.find_element_by_xpath("//td[@class='bt1']/../preceding-sibling::tr[1]").text
返回的内容为:高起点高水平推进福州新区建设
尤权于伟国赴福州新区调研
‘’
2.元素替换,查找元素位置可以用变量替换字符串
>>> driver.find_element_by_xpath("//*[@id='mp1057136']").click()
>>> a='mp1057136'
>>> driver.find_element_by_xpath("//*[@id='%s']"% a).click()
>>>
3.用webdriver获取网页上影藏的文字
网页格式和源码如下所示,网页上的内容被隐藏了,需要点击一下才会完全显示。右边是没有点击前页面的源码,可以看到完整的内容其实已经在页面上了,于是我通过下面方式获取


>>> driver.find_element_by_xpath(".//*[@id='company_base_info_detail']").text
''
>>> driver.find_element_by_xpath("//script[@id='company_base_info_detail']").text
''
通过定位获取到的竟然为空,并不想通过模拟点击生成新页面再来获取内容,看到网上博主有提到另一种获取隐藏信息的方式
driver.execute_script("return arguments[0].textContent",c)获取文字或者
driver.execute_script("return arguments[0].innerHTML",c)获取源码
>>> c=driver.find_element_by_xpath("//div[@class='sec-c2 over-hide']")
>>> driver.execute_script("return arguments[0].textContent",c)
'简介:淘宝(中国)软件有限公司成立于2004年12月07日,主要经营范围为研究、开发计算机软、硬...\n 淘宝(中国)软件有限公司成立于2004年12月07日,主要经营范围为研究、开发计算机软、硬件,网络技术产品,多媒体产品等。\n 详情'
>>> driver.execute_script("return arguments[0].innerHTML",c)
'<span><span class="sec-c3">简介:</span>淘宝(中国)软件有限公司成立于2004年12月07日,主要经营范围为研究、开发计算机软、硬...</span><script type="text/html" id="company_base_info_detail">\n 淘宝(中国)软件有限公司成立于2004年12月07日,主要经营范围为研究、开发计算机软、硬件,网络技术产品,多媒体产品等。\n </script><span class="c9 point hover_underline" onclick="companyDetail()">详情</span>'
>>> c=driver.find_element_by_xpath("//div[@class='sec-c2 over-hide']//script")
>>> driver.execute_script("return arguments[0].textContent",c)
'\n 淘宝(中国)软件有限公司成立于2004年12月07日,主要经营范围为研究、开发计算机软、硬件,网络技术产品,多媒体产品等。\n '
>>>
后面我重新定义了c使得最终得到我想要的企业完整简介
3.查找所有id都包含相同字符串的元素

tables = driver.find_elements_by_xpath("//div[contains(@id,'_container_')]")
4、查找标签
tag = driver.find_elements_by_xpath("//div[@class='search_right_item']")
tag[0].find_element_by_tag_name('a').click()
base = driver.find_element_by_xpath("//div[@class='company_header_width ie9Style']/div")
查找div标签中class属性等于’company_header_width ie9Style‘的子div
python爬虫----XPath的更多相关文章
- python爬虫xpath的语法
有朋友问我正则,,okey,其实我的正则也不好,但是python下xpath是相对较简单的 简单了解一下xpath: XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML ...
- python爬虫xpath
又是一个大晴天,因为马上要召开十九大,北京地铁就额外的拥挤,人贴人到爆炸,还好我常年挤地铁早已练成了轻功水上漂,挤地铁早已经不在话下. 励志成为一名高级测试工程师的我,目前还只是个菜鸟,难得有机会,公 ...
- Python爬虫 XPath语法和lxml模块
XPath语法和lxml模块 什么是XPath? xpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历. X ...
- Python爬虫 | xpath的安装
错误信息:程序包无效.详细信息:“Cannot load extension with file or directory name . Filenames starting with "& ...
- python爬虫前提技术
1.BeautifulSoup 解析html如何使用 转自:http://blog.csdn.net/u013372487/article/details/51734047 #!/usr/bin/py ...
- Python爬虫与数据分析之爬虫技能:urlib库、xpath选择器、正则表达式
专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...
- python爬虫的页面数据解析和提取/xpath/bs4/jsonpath/正则(1)
一.数据类型及解析方式 一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值.内容一般分为两部分,非结构化的数据 和 结构化的数据. 非结构化数据:先有数据,再有结构, 结构化数 ...
- Python爬虫教程-22-lxml-etree和xpath配合使用
Python爬虫教程-22-lxml-etree和xpath配合使用 lxml:python 的HTML/XML的解析器 官网文档:https://lxml.de/ 使用前,需要安装安 lxml 包 ...
- 小白学 Python 爬虫(19):Xpath 基操
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
随机推荐
- Echarts饼图显示模板
图表类型,必要参数!如为空或不支持类型,则该系列数据不被显示.可选为: 'line'(折线图) | 'bar'(柱状图) | 'scatter'(散点图) | 'k'(K线图) 'pie'(饼图) | ...
- 证明 U and V={0}时 dim(U+V)=dim(U)+dim(V)
U And V={0} 证明 dim(U+V)=dim(U)+dim(V)设{u1,u2,...,uk} 是U的基,{v1,v2...,vr}是V的基,dim(U)=k ,dim(V)=r dim(U ...
- centos 下备份oracle数据
一.在xshell下root用户登录服务器 1.新建oracle数据库备份目录 mkdir -p /casnw/backup/oradata6910bak 2.设置目录权限为oinstall用户组的o ...
- Manacher算法,最长回文串
给你10000长度字符串,然你求最长回文字串,输出长度,暴力算法肯定超时 #include <iostream> #include <string> #include < ...
- 转:【衬线字体与无衬线字体】font-family之Serif和Sans-Serif
CSS的font-family(字体系列)的值有许多,如Arial,Georgia,宋体,幼圆等. 一般可以分为两种,衬线字体(serif)和无衬线字体(sans-serif). 如果字体的笔画有末端 ...
- noip第24课作业
1. 马走日 [问题描述] 马在中国象棋以日子形规则移动.请编写一段程序给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. ...
- Mybatis类型转换介绍
1.1 目录 1.2 建立TypeHandler 1.2.1 TypeHandler接口 1.2.2 BaseTypeHandler抽象类 1.3 注册TypeHa ...
- android 线程中断的处理
android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@4 ...
- QOpenGLFunctions的使用(2)
QOpenGLFunctions的使用(2) 前一小结请参考:QOpenglFuncations(1) www.icmzn.com 本小节介绍相关的类: 1. The QGLContext class ...
- 7、使用autotools自动产生makefile
通过之前的学习可以知道,makefile拥有复杂的语法结构,编写与维护都不是很方便于是设计出了专门用来生成Makefile的autotools工具,以减轻制作makefile文件的负担. 自主软件主要 ...