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 ...