美文网首页
如何较快写出合适的xpath的小技巧

如何较快写出合适的xpath的小技巧

作者: 大白菜995 | 来源:发表于2020-02-13 19:56 被阅读0次

    一,场景

    用python写爬虫代码时,如下代码中需要写xpath路径

    图中title_path,src_path 写起来xlml比较繁琐,每一层元素都需要写出元素的属性,

    那有什么技巧可以方便的写出xpath路径呢

    二,准备工作

    1,浏览器安装Xpath helper 安装教程链接

    2,比如我们要提取豆瓣网上周星驰的所有电影名字网址

    三,操作步骤

    1,打开网址,在浏览器中按F12  进入Chrome开发者工具,可以查看原代码,点击如下图,

     2, 点击(或用者用快捷键Ctrl+Shift+C)进入选择元素模式,然后从页面中选择需要查看的元素,然后可以在开发者工具元素(Elements)一栏中    定位到该元素源代码的具体位置 。

    3,我们的目标是获取所有的电影名字,用图形选择模式,选中其中一个电影如《喜剧之王》如,右侧源代码中自动的的定位到该元素在lxml 位置上  

    4,会得到:

    /html/body/div[3]/div[1]/div/div[2]/div[1]/div[1]/div[5]/div/div/div[1]/a

    可以观察到这个xpath 是根据节点出现的顺序依次写出下个节点的

    5,我们在来重复上个步骤工作,选择另一个目标《美人鱼》的xpath定位

    /html/body/div[3]/div[1]/div/div[2]/div[1]/div[1]/div[7]/div/div/div[1]/a

    可以观察到两个xpath路径非常对应,仅仅在中间的div[]的出现顺序不同,那么我们可以在这个分叉的节点处理下 

    6,可以观察到从这个节点下,每个节点对应这个网页中每部电影的模块,只要在这个节点修改元素表示方法即可,发现改节点的class属性较长,不属于常规的特征值,但我们可以观察其子节点的关系

    每个子元素的属性相同,且是比较好的特征。

    /html/body/div[3]/div[1]/div/div[2]/div[1]/div[1]/div[5]/div/div/div[1]/a

    /html/body/div[3]/div[1]/div/div[2]/div[1]/div[1]/div[7]/div/div/div[1]/a

    修改如下:

    /html/body/div[3]/div[1]/div/div[2]/div[1]/div[1]//div[@class="item-root"]/div/div[1]/a

    注意使用  ”//“

    7,启动xpath helper 验证,将修改的节点复制到框中,观察结果是否和预想的一样

    相关文章

      网友评论

          本文标题:如何较快写出合适的xpath的小技巧

          本文链接:https://www.haomeiwen.com/subject/dbwlfhtx.html