Python从本地htmlfi提取信息

2024-10-02 12:27:47 发布

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

我有这个本地网站,我想提取每一行后

<font color='000000'> <u>PATTERN:</font>

这是页面源代码,它是google代码上ApproxMAP程序的输出:

^{pr2}$

在本例中,我想提取以下内容:

{1,} {2,3,} {4,5,} 
{9,10,} {11,} {12,13,} 

以下是我尝试过的一些代码,但没有一个有效:

# First try
soup = BeautifulSoup('file:///H:/Approx_google_code/tiny20.html')
soup.findall('PATTERN:')

# Second try
re.search( "PATTERN:", 'file:///H:/Approx_google_code/tiny20.html')

# Third try
soup.body.findAll(text='PATTERN:')

# Forth try
soup.body.findAll(text=re.compile('PATTERN:'))

我在这个简单的问题上纠结了这么久,以至于我开始怀疑beauthoulsoup是否是正确的方向。我对HTML完全陌生,所以欢迎任何简单的解释/建议,谢谢。在

我尝试了Why does bs4 return tags and then an empty list to this find_all() method?中的示例,但没有结果。在


Tags: 代码textrehtmlgooglecodebodyfile
1条回答
网友
1楼 · 发布于 2024-10-02 12:27:47

找到包含PATTERN:文本的元素,找到font父元素并获得下一个font同级元素:

soup = BeautifulSoup(data)

for elm in soup.find_all(text="PATTERN:"):
    print elm.find_parent("font").find_next_sibling("font").get_text(strip=True)

演示:

^{pr2}$

注意,由于我已经安装了lxmlBeautifulSoup将其用作底层解析器。我也尝试过html.parser,它对我有效。html5lib与前两个不同。无论如何,请显式指定解析器:

soup = BeautifulSoup(data, "lxml")

或者:

soup = BeautifulSoup(data, "html.parser")

相关问题 更多 >

    热门问题