爬虫中的xpath神器(获取网页任何元素)

主要当时是为了自动提交问卷星上面的问卷的

发现一个问题就是它有单选项,算是隐藏的

像这样

这样的话,不能像直接获取id或者class一样,因为这些没有class或者id的,就算有class那么都是一样的,所以就要想别的办法

于是查到有xpath这种方法,并且提供了一个获取xpath表达式的神器

火狐浏览器的xPath Finder插件

直接可以再火狐的插件商城下载到,我已经下载成功了,现在演示一下如何使用

  1. 先打开需要爬的网站,然后点击这个插件(在最右边)

  2. 点击后插件会变红

  3. 然后把鼠标移动到网页上,就会这样

  4. 我们点击一下这个需要获取xpath的地方

    右下角会出现xpath表达式,注意你不需要复制它,因为根据设置里面的默认设置,它已经自动复制到粘贴板了(如果没有,重新点击一下,可以有时候失灵)

  5. 其实这还不是我们要找的,我们现在选中的只是输入框,我们要的是输入框里面的元素

    我们发现,点输入框,会马上显示出下拉菜单,但是马上又消失了,所以我们就按住输入框,下拉菜单就不会消失,然后一直按住把鼠标拖动到指定地方

  6. 松开后,右下角就会出现该选项的xpath表达式

  7. 获取成功,那么如何使用?其实很简单

    我们看下面的这串代码,很容易理解

    通过find的by_xpath语句,然后把xpath复制进来,后面跟着需要的操作,比如click

    就可以了

  8. 如果要更改选项的话也很简单,比如下拉菜单我们需要选择其他的,那么我们先用火狐插件获取到其他的选项,看一下xpath表达式哪里变了

    比如这个

    这里是选择老师姓名的地方,有一千多个选项,我想要不同课程对应不同老师,所以课程变了,老师也要换,所以我们发现option后面的数字会变,那么就用格式化符号,%s就代表字符串,%d就代表数值,和c语言一样的,然后后面跟着需要替换的变量,变量改了,这里字符串的数字就改了

  9. 如果需要改两个值,也差不多

    这里还提供了随机数生成方法,这里生成的是1或2

    应该都讲完了


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!