pyquery解析html -- 类似jq
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | 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 ... |
标签:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义