使用Python从文本文件中提取单词

-1 投票
1 回答
890 浏览
提问于 2025-04-18 15:08

我对Python还很陌生。现在我想做的事情是:

用Python从txt文件中提取单词

有点像那个,但我需要提取的是在双引号中的单词,而且这些单词是在某个特定单词之后的。

目前,我的脚本正在抓取一个网站并保存HTML,效果很好,没有问题。

接着,我用BeautifulSoup来整理HTML,并搜索页面中的所有表格,因为我需要的数据就在这些表格里。

下面是其中一行表格的例子:

<td style="background-color:red;w ...blahblahblah... margin:0px;background:none" title="Bland NB" type="button" value="TRX"/>

BeautifulSoup会把所有的HTML整理成一行一行的表格(如果这样说能让你明白的话),然后我用正则表达式来筛选出那些包含“background-color:red”的表格行,因为我只关心这些红色的行。我需要脚本逐行处理(大约有350行,内容不同),提取出紧跟在'title='后面的引号中的内容,并把每个“title=”的内容保存到一个文本文件中,每行一个,如果你明白我的意思……

我觉得BeautifulSoup应该能做到这一点。我一直在尝试使用分割和去空格的函数,但就是无法实现我想要的效果。我也觉得可以用正则表达式来完成,但这又是个复杂的问题。

我离目标很近了!非常感谢任何帮助!!

谢谢!!

编辑

我不能发布更多的代码,因为里面包含公司的知识产权和信息,我不能公开。抱歉。

--Brent

相关问题:

1 个回答

0
html = """
<td style="background-color:red;w ...blahblahblah... margin:0px;background:none" title="Bland NB" type="button" value="TRX"/>
"""

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)

if "background-color:red" in td.get("style"):
    print soup.td.get("title")
    Bland NB

把所有内容整合在一起:

soup = BeautifulSoup(html)

all_tds = soup.findAll("td")

with open("out.txt","a+") as f:
    for td in all_tds:
        if "background-color:red" in soup.td.get("style"):
            f.write(soup.td.get("title")+"\n")

撰写回答