zoukankan      html  css  js  c++  java
  • PyQuery选择器

    学了re,xpath,beautifuisoup,再接着学PyQuery时总觉得,一些语句自己已经看过很多遍了,我们从一个简单的例子入手。

    html = '''
    <div>
        <ul>
             <li class="item-0">first item</li>
             <li class="item-1"><a href="link2.html">second item</a></li>
             <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
             <li class="item-1 active"><a href="link4.html">fourth item</a></li>
             <li class="item-0"><a href="link5.html">fifth item</a></li>
         </ul>
     </div>
    '''

    from pyquery import PyQuery as pq doc = pq(html) print(doc('li'))

    有用的信息就是, 

    from pyquery import PyQuery as pq    #必加   pq(filename='demo.html') 本地存在demo.html时也可以
    doc = pq(html)    #pq(html) 得到处理过的html代码
    doc('li')       #css查找,对,我们在pyquery中用到了css查找法

    doc('#container .list li') #名叫container 节点下有list属性的节点下的<li>标签

    doc('.list') #属性是list

    items.children('.active') # items下 属性为active的

    items.parent() #item的父亲节点,一个父亲!

    items.parents('.wrap') #item的所有父亲下 有wrap属性的

    li = doc('.list .item-0.active') #属性是 list 下的 既有active又有item-0属性的标签

    li.siblings() #所有兄弟节点
    doc = pq(html)
    lis = doc('li').items()    #items  产生一个生成器,通过循环提取
    print(type(lis))           #<class 'generator'>
    for li in lis:
        print(li, type(li))

    获取信息:

    .attr获取属性
    a = doc('.item-0.active a')print(a.attr('href'))
    .text,.html 获取文本
    doc = pq(html)
    li = doc('li')
    print(li.html())  #第一个节点的内部  html信息
    print(li.text())  #所有节点的 文本信息,注意,不输出标签相关的信息。
    
    
    

     节点操作

         addClass  和  removeClass,    addClass()removeClass()这些方法可以动态改变节点的class属性

    doc = pq(html)
    li = doc('.item-0.active')
    
    li.removeClass('active')  #这标签里面去掉 active属性
    
    li.addClass('active')     #这标签里面加上 active 属性

      

    
    

    attrtexthtml

    
    

    当然,除了操作class这个属性外,也可以用attr()方法对属性进行操作。此外,还可以用text()html()方法来改变节点内部的内容。示例如下:

     

     

     


     
  • 相关阅读:
    AmazonS3 替换HDFS 方案
    SQL Server 内存管理
    SQL Server I/O 问题的诊断分析
    共享内存 设计原理-shm
    机器学习经典算法笔记-Support Vector Machine SVM
    ACGAN 论文笔记
    CGAN 论文笔记
    《Image Generation with PixelCNN Decoders》论文笔记
    《Iterative-GAN》的算法伪代码整理
    《Deep Learning Face Attributes in the Wild》论文笔记
  • 原文地址:https://www.cnblogs.com/3532gll/p/9628341.html
Copyright © 2011-2022 走看看