打开网站并用 python 编辑 html

Open website and edeting the html with python

我有点卡住了。该程序应该打开一个网站并将其读取保存在一个文件中。然后它应该读取所​​有内容直到它找到一个字符串并删除它之前的所有内容并将其再次保存在一个新文件中。但是当我 运行 时,我得到第一个文件 html ,而我试图制作的第二个文件结果是空白的。谁能给我指出正确的方向?

import fileinput
import re
import requests
import sys

#linkToGet=sys.argv[1]                  //Hvordan hente link fra terminalen
#r = requests.get(linkToGet)

#nameOfFile=sys.argv[2]

#Hent nettsiden og lagre kildekoden som en textfil
r = requests.get('https://www.bibel.no/Nettbibelen?query=ud8MMrJeKwHNJdqN05oJoRgo89+A24MHmKzQYWJRSygk2+FVqgPK3UvcYb+xB3j7')  #Bare sånn jeg kan builde enkelt fra Atom
print (r.text)
f= open("kap3.txt","w+")
f.write(r.text)
f.close

#Fjern all tekst frem til en linje

TAG = """<A HREF="/Nettbibelen?query=ud8MMrJeKwHNJdqN05oJoc7CfBH5MjZKa4lw+sXwPrCzmbEZmCUXfQz2ApCFmHAq" class='versechapter'>50</A> """

tag_found = False
with open('kap3.txt') as in_file:
    with open('kap3ren.txt', 'w') as out_file:
        for line in in_file:
            if not tag_found:
                if line.strip() == TAG:
                    tag_found = True
            else:
                out_file.write(line)

看起来你只是在调用 out_file.write(line) 如果你找到了你正在寻找的行,你的 else 语句应该缩进以用于内部 if.

for line in in_file:
    if not tag_found:
        if line.strip() == TAG:
            tag_found = True
        else:
            out_file.write(line)

当然这使得外部 if 基本上没用了所以它可以简化为:

for line in in_file:
    if line.strip() == TAG:
        # you're done here so you can break the loop
        break
    else:
        out_file.write(line)