• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 关于数据抓取之xpath提取text为空问题的原因和解决方案

关于数据抓取之xpath提取text为空问题的原因和解决方案

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了xpath text,xpath定位之text,xpath,xpath语法,xpath教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

关于数据抓取之xpath提取text为空问题的原因和解决方案


今天在抓取淘宝网网页的时候,使用了:
  1. #店名
  2. shopname = driver.find_element_by_xpath(".//*[@id='page']/div[2]/div/div[2]/ul/li[1]/a/span").text.strip()
  3. #掌柜名
  4. dealername = driver.find_element_by_xpath("./html/head/title").text.strip()
  5. dealername = dealername[dealername.find('-')+1:dealername.rfind('-')]
对于xpath,当然好用,毕竟Firefox和Chrome可以自动生成,所以爬虫开发的速度会更快。然而,得到的结果很惊讶,全部为空。我突然之间陷入了迷惑,不可能是因为版本的问题吧,毕竟selenium已经这么成熟了。下午试了很多次,都是无功而返,我非常沮丧。
晚上继续,首先要找到问题出在什么地方。使用page_source查看,发现网页代码一应俱全。难道是非得把鼠标移动到特定位置,弹出菜单激活Js?于是使用:
  1. driver.get('https://shop594784981.taobao.com')
  2. time.sleep(3)
  3. menu = driver.find_element_by_xpath("//*[@id='header-content']/div[2]/p/span[1]/span[1]/a")
  4. ActionChains(driver).move_to_element(menu).perform()
  5. time.sleep(2)
弹出了隐含层,又如何呢,还是不行啊。~~~接着再尝试,试试其他
  1. print(driver.find_element_by_id("J_TEnterShop").text)
使用ID就可以了。然后,我就非常仔细地观察了ID这块的HTML结构特点,发现确实和之前要抓的结构不一样。接着我又试了一下这个Id的xpath,顺利提取。看来不是text方法的问题,也不是xpath的问题。而是结构的问题,对于xpath能提取什么样的结构我之前是没有弄清楚,现在举例说明一下:
  1. <span class="shop-name">
  2. 店铺:
  3. <a href="//shop124836129.taobao.com?spm=a1z10.1-c.0.0.XEwkxh" target="_blank" class="J_TGoldlog" data-goldlog-id="/tbwmdd.1.044" data-spm-anchor-id="a1z10.1-c.0.0">锦文图书批发<i id="J_TEnterShop">进入店铺</i></a>
  4. </span>

我只想提取店铺名称,但店铺名称在XXYY结构中,目标是XX,使用xpath提取的XX路径使用text提取的结果是空。但YY的xpath提取则是“进入店铺”,使用整个a链接的xpath是“锦文图书批发进入店铺”。所以xpath看来要使用标签封闭结构才行。
那么问题来了,怎么提取“锦文图书批发”呢?
有两种方法,一是换一个具有“锦文图书批发”的地方提取,二是使用XXYY - YY的方式。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于数据抓取之xpath提取text为空问题的原因和解决方案

相关文章

  • 2017-05-26解决VS2017不连接visual studio emulator for android,vs2017android
  • 2017-05-26android插件开发-就是你了!启动吧!插件的activity(二)
  • 2017-05-26android关于线程的那些事,android那些事
  • 2017-05-26onInterceptTouchEvent与onTouchEvent默认返回值,ontouchevent返回值
  • 2017-05-26DataPicker以及TimePicker显示时间和日期(屏幕上显示),datepicker日期格式
  • 2017-05-26Android中ContentProvider组件数据共享
  • 2017-05-26Android Studio 2.1 Preview有那些更新内容
  • 2017-05-26深入了解Kotlin的必备书籍,深入了解kotlin必备
  • 2017-05-26Android学习笔记(26):Toast提示信息框浅析
  • 2017-05-26greendao3.2.3配置时遇到的问题,greendao3.2.3遇到

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android5.0开发范例大全 读书笔记(四),android5.0范例
    • 安卓高级组件-----进度条,安卓-----进度条
    • Android特效专辑(十二)——如何仿支付宝咻一咻功能实现波纹扩散特效
    • Android5.0开发范例大全 读书笔记(六),android5.0范例
    • 减少Building &#39;Xxx&#39; Gradle project info等待时间,buildinggradle
    • Android之TextView,androidtextview
    • 抽取的BaseFragment和LoadingPage,basefragment
    • Android动画三部曲之一 View Animation &amp; LayoutAnimation
    • Android应用一般上架流程
    • Smalidea+IntelliJ IDEA/Android Studio动态调试安卓app教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有