网络爬虫,xpath

#导入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) #输出内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值