Python 如何使用BeautifulSoup逐行读取数据?

Python 如何使用BeautifulSoup逐行读取数据?,python,beautifulsoup,Python,Beautifulsoup,下面的代码给出了Example.html文件中的数据。但我必须逐行读取数据 html_doc = open("Example.html","r") soup = BeautifulSoup(html_doc, 'html.parser') print(soup.get_text()) 使用splitlines()方法可以轻松地逐行读取数据 对于您的情况,您可以使用: html_doc = open("Example.html","r") soup = BeautifulSoup(html_do

下面的代码给出了Example.html文件中的数据。但我必须逐行读取数据

html_doc = open("Example.html","r")
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.get_text())

使用splitlines()方法可以轻松地逐行读取数据

对于您的情况,您可以使用:

html_doc = open("Example.html","r")
soup = BeautifulSoup(html_doc, 'html.parser')
output = soup.get_text()

for row in output.splitlines():
  # Do whatever you want
编辑:对于在if条件后读取20行的请求,可以枚举splitlines()方法并读取接下来的20行。然后,使用break语句退出for循环

for idx, row in enumerate(output.splitlines()):
    if row == "ADD.c":
       twenty_line = idx + 20
    try:
       if idx < twenty_line:
          print(row + "\n")
       else:
          break
    except NameError as e:
        print(e)
对于idx,枚举(output.splitlines())中的行:
如果行==“ADD.c”:
二十线=idx+20
尝试:
如果idx<二十线:
打印(行+“\n”)
其他:
打破
除名称错误为e外:
打印(e)

你能添加你的预期输出吗?假设下面是HTML文件中的文本一只口渴的乌鸦飞进一个村庄寻找水。乌鸦飞过房屋、田野和树木。乌鸦把嘴放进水罐里,但够不着水。水位太低,狭窄的开口阻止了他的脖子一路下降到预期的输出:我必须先读第一行,然后比较第一行是否包含“阻止”一词。若它包含,若并没有,那个么做些什么,阅读下一行并进行比较。比较我能做,但我不知道如何逐行阅读文本。在HTML文件中,“行”是什么意思?用
\n
分隔的物理行?分开
内容?在当前本地浏览器窗口中,您的浏览器以当前字体和大小打断文本行?由此分隔的行对我有效,但如果我有类似于输出中的行的条件。拆分行():if row==“ADD.c”:现在,如果该行等于ADD.c,那么请阅读接下来的20行,我们如何做到这一点?我已根据您的评论编辑了答案@拉凯什夏尔马