使用Python从文本文件中提取单词
我对Python还很陌生。现在我想做的事情是:
有点像那个,但我需要提取的是在双引号中的单词,而且这些单词是在某个特定单词之后的。
目前,我的脚本正在抓取一个网站并保存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")