1.PyQuery
1 from pyquery import PyQuery as pq 2 3 # url初始化 4 # html = '' 5 # doc = pq(html) 6 url = 'https://www.baidu.com' 7 doc = pq(url=url) 8 print(doc('head')) 9 10 # 文件初始化 11 doc = pq(filename='xxx.html') 12 print(doc('li')) 13 14 # 基本css选择器 15 doc('#id .class a') # id 下 class 的 li 标签 16 doc('#id .class.a') # 并列表示同级 17 18 # 查找元素 19 item = doc('.class') 20 lis = item.find('list') # 子元素 21 lis = item.children() # 直接子元素 不常用 22 lis = item.children('.class') 23 24 lis = item.parent() #父元素 25 lis = item.parents() #祖先节点 26 lis = item.parents('li') 27 28 item.siblings() #兄弟节点 29 item.siblings('') #兄弟节点 30 31 32 # 遍历 33 lst = doc('li').items() #生成器 34 for ls in lst: 35 pass 36 37 # 获取属性 38 lis.attr('href') 39 lis.attr.href 40 41 # 获取文本 42 lis.text() 43 44 # 获取html 45 lis.html() 46 47 # dom操作 48 lis.remove_class('.class') 49 lis.add_class('.class') 50 51 lis.attr('name','link') # 加一个name='link' 的属性 52 lis.css('font-size','14px') # 加一个css属性 53 54 lis.find('p').remove() # 删除p标签 55 56 # 伪类选择器 57 doc('li:first-child') # 第一个元素 58 doc('li:last-child') # 最后一个元素 59 doc('li:child(2)') # 第二个元素 60 doc('li:gt(2)') # 第二个元素以上 61 doc('li:nth-child(2n)') # 偶数元素 62 doc('li:contains(second)') # 包含second 文本的