python爬虫教程

python爬虫教程之xpath使用

Posted by abhhay on April 15, 2019

Python 爬虫教程 xpath

1.什么是xpath

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言

2.xpath helper 安装

通过在谷歌上面安装 xpath helper ,不会的参照我上一篇文档

3.开始xpath学习之旅
  1. 查找网页的某个标签 eg .查找 title response.xpath(‘//title’)

  2. 获取标签里面的值 eg . < a > 我是abhay< /a > response.xpath(“a/text()”)

  3. 获取href里面的超链接 eg. < a href=”https://abbhay.github.io”> 我是abhay< /a > response.xpath(‘a/@href’)

  4. 通过class查找标签内容 eg. < a href=”https://abbhay.github.io” class = “blog_url”> 我是abhay< /a > response.xpath(“a[class=’blog_url’]/@href”)

  5. 其他属性和4类似

  6. 根据标签内容查找位置 eg. < a href=”https://abbhay.github.io” class = “blog_url”> 我是abhay< /a > response.xpath(“a[text()=’下一页’]”)


4.精华
  1. contains 使用 //div[contains(@id,”name”)] 他会定位到 id=name的元素 可以搭配 and or xpath(‘//div[contains(@class,”a”) and contains(@class,”b”)]’) #它会取class含有有a和b的元素xpath(‘//div[contains(@class,”a”) or contains(@class,”b”)]’) #它会取class 含有 a 或者 b满足时,或者同时满足时的元素 (借鉴处

  2. ///.// ./区别 enmmm 可以这样理解 //.// 前者指的是从全局通配搜索元素 ,而 .// 值得是当前路径下去查找元素 而·/指的是代替一个标签 比如 div ->div-> 就可以写成 //div ,./和.//一样只是替代一个标签也是再当前路径下查找元素

  3. 上面只是简单介绍了xpath语法,但是不可能都能完美解决爬虫实际开发的问题所以 最简单的方式 使用我们的 xpath helper (如果没装好的朋友可以去前面查看如何安装)

    然后 启动 输入快捷键 Ctri+Shift+X 将 xpath helper 调试出来 再按住Shift 就可以查看他对应得xpath函数了 是不是 很机智丫 NO NO NO 他有时候是根据绝对路径给你的xpath 路径太长 看起来不舒服 所以 就需要我们稍稍优化一下 就需要我们上面的精华部分2了

  4. 如果你连xpath helper都不想安装,又想得到xpath的便利 那么 你可以通过Chrome自带的xpath 也可以用的呢 调出你的开发者工具 选中你要的元素 右键 copy —> copy xpath

结语

​ xpath 使用其实很简单的,下一次我们讲解正则表达式re

​ 加油 a kind pythoner