Python提取XML中URL的核心是用xml.etree.ElementTree或lxml解析并定位文本内容或href/src/url等属性中的HTTP/HTTPS链接,需去重、清洗、校验合法性并支持相对路径补全。
Python提取XML中的所有URL链接,核心是解析XML结构并定位包含URL的元素或属性。常用方法是用xml.etree.ElementTree(内置、轻量)或lxml(功能强、支持XPath和HTML容错)。URL通常出现在元素文本内容中(如),或作为属性值(如),需根据实际XML格式灵活处理。
适用于URL直接写在标签内的场景(如、、等)。ElementTree可递归遍历所有元素,检查其文本内容是否符合URL格式。
ET.iterparse()或ET.fromstring()加载XMLelem.text是否非空且以http://或https://开头re.match(r'^https?://', text.strip())做简单校验当URL藏在属性里(如href、src、url),XPath表达式更精准高效。lxml支持完整XPath语法,比ElementTree更灵活。
pip install lxml
//*[@href] | //*[@src] | //*[@url] 匹配含这些属性的任意元素elem.get('href')等获取属性值,并过滤掉空值或非URL字符串真实XML可能混合多种URL位置,还可能存在注释、CDATA、相对路径或空值。提取时建议统一去重、清洗和验证。
set()自动去重str.strip(),跳过空值和纯空白urllib.parse.urlparse()判断是否为合法URL(scheme存在且为http/https)urllib.parse.urljoin(base_url, rel_url)补全以下用lxml实现“文本+常见属性”双路提取,带基础校验:
from lxml import etree from urllib.parse import urlparsedef extract_urls_from_xml(xml_source): tree = etree.parse(xml_source) if hasattr(xml_source, 'read') else etree.fromstring(xml_source) urls = set()
# 提取属性中的URL for attr in ['href', 'src', 'url', 'xlink:href']: for elem in tree.xpath(f'//*[@{attr}]'): val = elem.get(attr, '').strip() if val and urlparse(val).scheme in ('http', 'https'): urls.add(val) # 提取文本中的URL(仅检查直系文本,避免混入子元素内容) for elem in tree.iter(): if elem.text and elem.text.strip(): text = elem.text.strip() if text.startswith(('http://', 'https://')): if urlparse(text).scheme in ('http', 'https'): urls.add(text) return list(urls)使用示例
xml_data = '''
//example.com/page1"/> ''' print(extract_urls_from_xml(xml_data))https://www./link/99efe6e00320edb6fac7ab90e845bb3e;
# python
# html
# go
# cdn
# xml解析
相关文章:
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
常州自助建站费用包含哪些项目?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
h5网站制作工具有哪些,h5页面制作工具有哪些?
如何使用Golang table-driven基准测试_多组数据测量函数效率
如何选择最佳自助建站系统?快速指南解析优劣
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
如何构建满足综合性能需求的优质建站方案?
如何高效配置IIS服务器搭建网站?
如何选择服务器才能高效搭建专属网站?
如何快速搭建响应式可视化网站?
建站主机选虚拟主机还是云服务器更好?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
平台云上自助建站如何快速打造专业网站?
ppt制作免费网站有哪些,ppt模板免费下载网站?
制作网站的公司有哪些,做一个公司网站要多少钱?
定制建站如何定义?其核心优势是什么?
英语简历制作免费网站推荐,如何将简历翻译成英文?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
宁波免费建站如何选择可靠模板与平台?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
公众号网站制作网页,微信公众号怎么制作?
宝塔Windows建站如何避免显示默认IIS页面?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
建站之星代理如何获取技术支持?
免费视频制作网站,更新又快又好的免费电影网站?
Python lxml的etree和ElementTree有什么区别
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
江苏网站制作公司有哪些,江苏书法考级官方网站?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
宝塔新建站点为何无法访问?如何排查?
活动邀请函制作网站有哪些,活动邀请函文案?
网站制作服务平台,有什么网站可以发布本地服务信息?
股票网站制作软件,网上股票怎么开户?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
宝塔面板如何快速创建新站点?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
如何在腾讯云免费申请建站?
外贸公司网站制作哪家好,maersk船公司官网?
建站之星安装步骤有哪些常见问题?
建站之星会员如何解锁更多建站功能?
*请认真填写需求信息,我们会在24小时内与您取得联系。