制作XML解析器fas

2024-04-20 10:36:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在编写一个脚本,使用beautifulsoup解析xml网页。xml文件的一个例子是here。这个脚本基本上会输出第一个产品URL(来自每个loc标签),它与已经输入的关键字列表相匹配。当前,脚本的控制流如下所示:

  • 将URL传递到一个soup对象并美化它
  • 对每个url标记运行for循环,并将每个loc文本放入一个列表(inventory\u url)

    for item in soup.find_all('url'):
            inventory_url.append(item.find('loc').text)
    
  • 遍历列表,并输出匹配所有关键字的第一个元素,其中“keywords”是输入的关键字列表

        for item in inventory_url:
            if all(kw in item for kw in keywords):
                return item
    

我想知道是否有一种方法可以使解析更快。我看过soupstrainer,但当我隔离到只找到'loc'标签时,它也接受了'图片:loc“标签,我不需要。你知道吗

非常感谢。你知道吗


Tags: in脚本url列表for关键字标签xml
2条回答

如果你能以简单文本的形式传输文件,我想regex会很快。。。你知道吗

import re

pattern = re.compile(r'<url>[\S\s]*?<loc>([\S\s]*?)</loc>[\S\s]*?</url>')

for match in re.finditer(pattern, file.read()):
     #do stuff

[\S\s]*?是一种懒散的方法,在我们找到下一个目标之前,逐字匹配任何东西。?对于不打破这种局面至关重要。你知道吗

相关问题 更多 >