zoukankan      html  css  js  c++  java
  • python中lxml库与Xpath语法(含实例)

    Xpath表达式:

    /  描述:从根节点选取

    //  描述:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置

    .  描述:选取当前节点

    ..  描述:选取当前节点的父节点

    @  描述:选取属性

    定位目标标签思路:“先抓大再抓小”,先找到循环节点,再细分

    给出一个简单例子如下:

    from lxml import etree
    import requests
    
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
    }
    url = 'http://a.qidian.com/?page=1'
    res = requests.get(url,headers=headers)
    selector = etree.HTML(res.text)
    #print(res.text)
    '''
    str=selector.xpath('/html/body/div[1]/div[5]/div[2]/div[2]/div/ul/li[1]/div[2]/p[1]/a[1]/text()')#通过/text()可以获得标签中的文字信息
    print(str)
    '''
    infos = selector.xpath('//ul[@class="all-img-list cf"]/li')
    print(infos)
    for info in infos:
        author = info.xpath('div[2]/p[1]/a[1]/text()')[0]
        print(author)

    网站:

    错误点:

    author = info.xpath('/div[2]/p[1]/a[1]/text()')[0]

    开始的时候,一直多加了一个单斜杠,找了好久这个错才找出来,一直以为我找的Xpath路径出错了。 

    正确:

    author = info.xpath('div[2]/p[1]/a[1]/text()')[0]
  • 相关阅读:
    canvas实现文字分行
    二维码扫描添加闪光灯的功能
    修改二维码扫描框的大小位置
    Android中实现EditText圆角的方法
    利用FrameLayout实现遮罩层
    EditText中的灰色提示
    实现等待动画
    发送短信
    自定义EditText动态在EditText中添加图片
    xml解析
  • 原文地址:https://www.cnblogs.com/sengzhao666/p/12315155.html
Copyright © 2011-2022 走看看