zoukankan      html  css  js  c++  java
  • xpath

    - 获取所有节点
        - 获取所有li标签
        - //*  //li
    - 获取子节点
        - 我们通过/或//即可查找元素的子节点和子孙节点
        - li节点的所有直接a子节点
        - //li/a
        - 获取ul的所有子孙a节点
        - //ul//a
        
    - 获取父节点属性
        - 知道子节点查询父节点
        - //div[@class="filter-wrap"]/../@class'
        - //div[@class="filter-wrap"]/parent::*/@class'
        
    - 属性定位
        - 找到当前源码中所有class属性为song的div标签
        - //div[@class="song"]
        
    - 层级&索引定位
        - 找到class属性值为tang的div的直系子标签ul下的第二个子标签li下的直系子标签a
        - //div[@class="tang"]/ul/li[2]/a
        
    - 多属性匹配
        - 从当前源码中找到href属性为空且class属性为song的所有a标签
        - //a[@href="" and @class="song"]
        
    - 模糊匹配
        - 找到所有class属性值中包含nb的所有div标签
        - //div[contains(@class,"so")]
        - 找到所有class属性值以zb开头的所有div标签
        - //div[starts-with(@class,"ta")]
        
    - 获取文本
        - / 表示获取某个标签下的文本内容
        - // 表示获取某个标签下的文本内容和所有子标签下的文本内容
        - //div[@class="song"]/p[1]/text()
        - //div[@class="tang"]//text()
        
    - 获取属性
        - //div[@class="tang"]//li[2]/a/@href

    58同城房源信息爬取

    import requests
    from lxml import etree
    
    url = "https://bj.58.com/shahe/ershoufang/?PGTID=0d30000c-0047-e4b2-f57c-08960a90aab4&ClickID=1"
    headres = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
    }
    response = requests.get(url).text
    
    # 实列化一个etree对象,加载页面源码数据
    tree = etree.HTML(response)
    
    # etree对象调用xpath函数,结合xpath表达式进行标签定位和内容捕获
    li_list = tree.xpath('//ul[@class="house-list-wrap"]/li') # 返回值由很多个li标签组成的列表
    for i in li_list:
        tetle = i.xpath("./div[2]/h2/a/text()")[0]   # 局部调用表达式时必须加点
        procr = "".join(i.xpath("./div[3]/p//text()"))  # 将价格拼接
        print(tetle,procr)
  • 相关阅读:
    Powerdesigner SqlServer转Oracle(转)
    ASP.NET jquery.uploadify上传控件中文乱码解决办法(转)
    网页上显示数学公式目前哪种方案最好? 来自知乎
    sql server 自增长id 允许插入显示值
    (转)【深入浅出jQuery】源码浅析2--奇技淫巧
    (转)js activexobject调用客户机exe文件
    搞笑代码注释,佛祖保佑 永无BUG
    json 递归查找某个节点
    c# string.format json字符串 formatException错误
    验证list的底层数据结构
  • 原文地址:https://www.cnblogs.com/yongyuandishen/p/14904812.html
Copyright © 2011-2022 走看看