引用lxml

...

lxml大法好,是python下功能很丰富的XML和HTML解析库。 而XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

需要导入的库


import urllib.request
from lxml import etree

老物件

urllib.request :HTTP处理模块


headers=('User-Agent','Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36')

opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)

url = 'https://foreverblog.cn/blog/1337.html'
data = urllib.request.urlopen(url).read().decode("utf8")
 #print(data)

核心


r = etree.HTML(data) #分析html,建立结点父子关系
find_url = r.xpath("//div[@class='cleft']/a/@href") #在结点里面查找

输出


print(find_url[0])
------------------------
结果:
https://www.cnblogs.com/1go0
>>> 

最后

参考资料: 0. lxml官方第一手资料 1.lxml的使用(节点与xpath爬取数据) 2.DOM树简单理解学习 3.xpath 获取标签内的 text , href 4.xpath语法