Python用beauthulsoup4在特定注释节点之间提取数据

2024-04-29 09:05:45 发布

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

寻找从一个网站挑选具体的数据,如价格,公司信息等。幸运的是,网站设计师已经放置了许多标签,如

<!-- Begin Services Table -->
' desired data
<!-- End Services Table -->

我需要什么样的代码才能让BS4返回给定标记之间的字符串?在

^{pr2}$

以下是相关网站:

http://www.100ll.com/showfbo.php?HashID=cf5f18404c062da6fa11e3af41358873


Tags: 数据代码标记信息data网站table公司
1条回答
网友
1楼 · 发布于 2024-04-29 09:05:45

如果要在这些特定注释之后选择table元素,则可以选择所有注释节点,根据所需文本对其进行过滤,然后选择下一个同级table元素:

import requests
from bs4 import BeautifulSoup
from bs4 import Comment

response = requests.get(url)
soup = BeautifulSoup(response.content, "lxml")

comments = soup.find_all(string=lambda text:isinstance(text,Comment))

for comment in comments:
    if comment.strip() == 'Begin Services Table':
        table = comment.find_next_sibling('table')
        print(table)

或者,如果您想在这两个注释之间获取所有数据,则可以找到第一个注释,然后迭代所有下一个同级,直到找到结束注释:

^{pr2}$

相关问题 更多 >