python的HTML解析器,可以跟踪标签在HTML文档中的位置

Posted

技术标签:

【中文标题】python的HTML解析器,可以跟踪标签在HTML文档中的位置【英文标题】:HTML parser for python that can keep track location of the tag within HTML document 【发布时间】:2021-02-05 09:35:42 【问题描述】:

我正在使用 python 解析 html 页面。我需要找到某些标签并以字节为单位测量它们之间的距离。 我使用了 BeautifulSoup,但它无法获取找到的标签的位置。有没有可以做到这一点的python库? 谢谢

【问题讨论】:

您能否发布一个关于标签“位置”的示例? 你的意思是你想要每个标签开始的文档中的字符位置吗? 是的,每个标签开始的文档中的字符位置 @user1354033 你看到我的回答了吗?请更新问题的状态。 【参考方案1】:

如果我理解您想要获取每个标签开始的字符位置的意图,那么您可以使用以下代码来执行此操作。我从我的一个编码挑战中获得了这一点,以获取术语/标签开始的位置并进行计数。您可以根据自己的需要进行调整。

import urllib.request

def getTopicCount(topic):
    url = "http://www.google.com/search?q="
    contents = urllib.request.urlopen(url+topic).read().encode('utf-8')
    count = 0
    pos = contents.find(topic) #returns when this word was encountered. -1 its not there
    while pos != -1: #returns -1 if not found
        count += 1 
        pos = contents.find(topic, pos+1)#starting posistion in the returned json request
    return count

print(getTopicCount("<div"))

【讨论】:

以上是关于python的HTML解析器,可以跟踪标签在HTML文档中的位置的主要内容,如果未能解决你的问题,请参考以下文章

python爬虫---beautifulsoup

python爬虫--解析网页几种方法之BeautifulSoup

Python爬虫解析htm时lxml的HtmlElement对象获取和设置inner html方法

Python:使用`lxml.html`将HTML内容注入标签

laravel 5 的简单 html dom 解析器

Python:异常装饰器。如何保留堆栈跟踪