pyquery解析html -- 类似jq

from pyquery import PyQuery as pq

html = '''
    <ul>
        <li class="a1">123</li>
        <li class="a2">123</li>
        <li class="a3">123</li>
        <li>123</li>
    </ul>
    <p id="cc">xcxxx</p>
'''
#
# doc = pq(html)
# 获取单个
# p_text = doc('#cc')[0].text
# print(p_text)
# URL初始化
# doc = pq(url='http://www.baidu.com')
# print(doc('head'))
# 文件初始化
# doc = pq(filename='demo.html')
# print(doc('li'))
# 查找多个元素 和jq一样
# doc = pq(html)
# lis = doc('ul .a1,ul .a2,ul .a3')
# print(type(lis))
# print(lis[0].text)
# 查找子元素 (在ul中查找li标签)
# items = doc('ul')
# print(items.find('li'))
# print(items.children('.currentClass'))
# 查找父元素
# print(items.parent())
# print(items.parents())
# 兄弟元素获取
# print(items.siblings())  # 所有兄弟同级
# print(items.siblings('.active'))  # 也可以获取指定的
# 遍历元素
# lis = doc('li').items()
# for li in lis:
#     print(li)
#     print(li.text)
# 获取属性 2中方法
# a = doc('.item')
# print(a.attr('href'))
# print(a.attr.href)
# 获取文本 2中方法
# doc('#cc')[0].text
# doc("#ccc").text()
# 获取元素内的html
# lis = doc('li')
# lis.html()

# --------------------DOM 操作
# 删除 添加 class
# li = doc('.item')
# li.removeClass('active')
# li.addClass('active')
# 删除添加属性, CSS添加
# li = doc('.item')
# li.attr('name','active')
# li.css('font-size','14px')
# 删除元素
html = '''
    <div>
        Hello world!
        <p>remove this tag</p>
        <p>remove this tag</p>
        
    </div>
'''
# doc = pq(html)
# print(doc.text())
# doc.find('p').remove()  # 找到p并删除(如果有多个都会删除)
# print(doc.text())

# --------------  伪类选择器
# li = doc('li:first-child')
# li = doc('li:last-child')
# li = doc('li:nth-child(2)')  # 获取第二个子元素
# li = doc('li:gt(2)')  # 获取第二个以后得子元素
# li = doc('li:nth-child(2n)')  # 获取 0 2 4 6 8 ...

  

原文地址:https://www.cnblogs.com/412013cl/p/8710494.html