爬虫中的xpath神器(获取网页任何元素)
主要当时是为了自动提交问卷星上面的问卷的
发现一个问题就是它有单选项,算是隐藏的
像这样
这样的话,不能像直接获取id或者class一样,因为这些没有class或者id的,就算有class那么都是一样的,所以就要想别的办法
于是查到有xpath这种方法,并且提供了一个获取xpath表达式的神器
火狐浏览器的xPath Finder插件
直接可以再火狐的插件商城下载到,我已经下载成功了,现在演示一下如何使用
先打开需要爬的网站,然后点击这个插件(在最右边)
点击后插件会变红
然后把鼠标移动到网页上,就会这样
我们点击一下这个需要获取xpath的地方
右下角会出现xpath表达式,注意你不需要复制它,因为根据设置里面的默认设置,它已经自动复制到粘贴板了(如果没有,重新点击一下,可以有时候失灵)
其实这还不是我们要找的,我们现在选中的只是输入框,我们要的是输入框里面的元素
我们发现,点输入框,会马上显示出下拉菜单,但是马上又消失了,所以我们就按住输入框,下拉菜单就不会消失,然后一直按住把鼠标拖动到指定地方
松开后,右下角就会出现该选项的xpath表达式
获取成功,那么如何使用?其实很简单
我们看下面的这串代码,很容易理解
通过find的by_xpath语句,然后把xpath复制进来,后面跟着需要的操作,比如click
就可以了
如果要更改选项的话也很简单,比如下拉菜单我们需要选择其他的,那么我们先用火狐插件获取到其他的选项,看一下xpath表达式哪里变了
比如这个
这里是选择老师姓名的地方,有一千多个选项,我想要不同课程对应不同老师,所以课程变了,老师也要换,所以我们发现option后面的数字会变,那么就用格式化符号,%s就代表字符串,%d就代表数值,和c语言一样的,然后后面跟着需要替换的变量,变量改了,这里字符串的数字就改了
如果需要改两个值,也差不多
这里还提供了随机数生成方法,这里生成的是1或2
应该都讲完了
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!