#导入lxml包下的etree类 from lxml import etree #随意定义一段html代码块 s=""" <div> <ul> <li class="item-0"><a href="link1.html">aaa</a></li> <li class="item-0"><a href="link2.html">bbb</a></li> <li class="item-0"><a href="link3.html">ccc</a></li> </ul> </div> """ #将字符串转换为html网页(编号) html=etree.HTML(s) print(html) print("-"*80) #将html网页转换为字符串 #与直接输出不同,这里会加上html,body标签。 html_string=etree.tostring(html) #输出并设置编码格式为utf-8(兼容中文) print(html_string.decode("utf-8")) print("-"*80) #匹配a标签1(多个结果就用列表循环输出) #加 / 得一层一层往下找 html_data1=html.xpath("/html/body/div/ul/li/a") for i in html_data1: print(i) print(i.text) # 输出a标签的内容 print("-"*80) #匹配a标签2 #加 // 就可以省略前面在多级 html_data2=html.xpath("//div") for i in html_data2: # 加 @href 就是获取a标签里href的内容 #. 暂时不知道什么意思 res = i.xpath("./ul/li/a/@href") print(res) # for j in res: # print(j) print("-"*80) #匹配谓语(获取指定相同标签的其中一个,[]下标从1开始) html_data3=html.xpath("//li[2]/a") print(html_data3) print(html_data3[0].text) #输出内容
网络爬虫,xpath
最新推荐文章于 2024-07-17 09:15:39 发布