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 ...
随机推荐
- Educational Codeforces Round 60 D dp + 矩阵快速幂
https://codeforces.com/contest/1117/problem/D 题意 有n个特殊宝石(n<=1e18),每个特殊宝石可以分解成m个普通宝石(m<=100),问组 ...
- CEdit控件[转]
1.CButton.CEdit等从CWnd继承了重要的功能: 使用CWnd::SetWindowText和CWnd::GetWindowText可以设置和获得窗口或控件上的文本.CWnd::SetFo ...
- IntelliJ IDEA 2017版 spring-boot2.0.2 搭建 JPA springboot DataSource JPA环境搭建,JPA注解@ManyToOne使用详情;JPA外键设置
一.数据库原型 数据库模型如图所示,而现在需要根据数据库模型,建立对应的实体类,这在项目重构老数据库,采用新的框架重构上应该是比较常见的. 数据库脚本如下: CREATE TABLE `bomsub` ...
- 第30章:MongoDB-索引--地理信息索引
①地理信息索引 地理信息索引分为两类:2D平面索引,另外就是2DSphere球面索引.在2D索引里面基本上能够保存的信息都是坐标,而且坐标保存的就是经纬度坐标. 范例:定义一个商铺的集合 db.sho ...
- VIP之CVI CVO
3. VIP CVI CVO 在开始时,对于CVI和CVO是不知道应该怎样去调试的,就是不知道应该从哪里去确认是对还是错. 关于这一点从再次看到关于数据包的格式才明朗的.去分析CVI和输出 ...
- WordPaster2产品介绍
更新WordParser组件,集成ImagePaster组件功能.完善粘贴剪帖板图片,粘贴电脑图片文件,粘贴word,粘贴excel逻辑. 大幅度优化和精简js代码,js代码行数从1932行减少到97 ...
- Kindeditor图片粘贴上传(chrome)
kindeditor4.1.x版本已支持图片批量上传,不过传统的选文件上传的方式依然效率低下. 很多时候,编辑人员可能需要将一个文档中图片上传到网上,那么,按照传统的上传方法,他必须先将图片另存为到本 ...
- android 首字母迷糊查询 拼音查询 中英文混排查询
对于这个问题,还没有动手去做,暂且查了查资料,把思路记录下来: 1. 数据库保存拼音+汉字.在插入数据库的时候将这些信息保存下来,将来可以进行首字母模糊查询,拼音查询,中英文混排查询(参考手机通讯录数 ...
- hdu 5090 数列贪心加成1~n
http://acm.hdu.edu.cn/showproblem.php?pid=5090 给一段长度为n数列,问能否给任意个数加上k的倍数,使得加完之后恰好只有1~n 贪心,先排序,依次加出1~n ...
- tarjan算法--求解无向图的割点和桥
1.桥:是存在于无向图中的这样的一条边,如果去掉这一条边,那么整张无向图会分为两部分,这样的一条边称为桥 也就是说 无向连通图中,如果删除某边后,图变成不连通,则称该边为桥 2.割点:无向连通图中,如 ...