xpath 常用方法

1.xpath常用匹配:

(1.)//模糊查询

//div[contains(text(),"history-loadmore") and not(contains(@class, "history-loadmore hide"))]

//div[@class='bookTel']/span[@class='tel']/strong[1][contains(text(),'-')]/text()

(2.)//选取同级节点

//div[@class='listpage']/span/following-sibling::a[1]

//div[@class='address-row']/table/tbody/tr[@id='submitTime']/preceding-sibling::tr[1]

(3.)//获取父级元素

//div[@class='page-box house-lst-page-box']/parent::div

//div[@class and @id]

//div[@id="myid"]//text()

//div[@class='lp-main-page']/a[@class='page-num '][last()]/text()

(4.)//大于1

a[position()>1]

li[not(@class)]preceding

(5.)  | 可选符 使用|可选取若干个路径 如//p | //div

(6.). 点 用来选取当前节点

(7.).. 双点 选取当前节点的父节点

(8.)\w 是 [A-Za-z0-9_]

(9.)\d 是 [0-9]

2.child的用法:

"url_page": {

    "seed_urls": {

        "field": "seed_urls",  # 字段名称

        "depict": "种子url",

        "status": True,  # 是否禁用

        "type": [],  # list  # 字段类型

        "select": "xpath",  # 提取方式

        "deep": False,

        "split": True,

        "regex": "//div[@class='section']/div",  # 提取规则

        "child": {

            "seed_url": {

                "field": "seed_url",  # 字段名称

                "depict": "种子url",

                "status": True,  # 是否禁用

                "type": "",  # list  # 字段类型

                "select": "xpath",  # 提取方式

                "deep": False,

                "split": True,

                "regex": "//h4[@class='house-title']/a/@href",  # 提取规则

                "value_handle": [  # 内容处理

                    {

                        "name": "urljoin"

                    }

                ],

            },

            "house_floor": {

                "field": "house_floor",  # 字段名称

                "depict": "所在楼层",

                "status": True,  # 是否禁用

                "type": "",  # 字段类型

                # "separator": "",  # list->str 分隔符 默认按","分割

                "select": "xpath",  # 提取方式

                "deep": False,

                "split": True,

                "regex": "//p[@class='house-txt'][1]/text()[2]",  # 提取规则

                "value_handle": [  # 内容处理

                ],

            },

            "thumbnails": {

                "field": "thumbnails",  # 字段名称

                "depict": "缩略图",

                "status": True,  # 是否禁用

                "type": "",  # list  # 字段类型

                "select": "xpath",  # 提取方式//ul[@class='listUl']/li/div[@class='img_list']/a/img/@src

                "deep": False,

                "split": True,

                "regex": "//img[@class='lazy']/@data-original",  # 提取规则

                "value_handle": [  # 内容处理

                ],

            },

            "house_title": {

                "field": "house_title",  # 字段名称

                "depict": "房源标题",

                "status": True,  # 是否禁用

                "type": "",  # list  # 字段类

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,272评论 19 139
  • 首先重构了页面样式,布局更加合理。这样的话也便于我操作①②之间的线。 然后就是删除了一段固定的块状元素,将所有的任...
    yaolei72阅读 1,787评论 0 0
  • HTML基础 开始 上周我已经学习了一些开发工具(Sublim Text、vscode),我学会了如何一些基础设置...
    H少白阅读 4,003评论 0 4
  • 数字,英文,中文 cet_add_goods.setInputType(InputType.TYPE_CLASS_...
    吃货养成记阅读 3,826评论 0 0
  • 琢玉书生阅读 1,675评论 0 1

友情链接更多精彩内容