Я хотел бы иметь python для строк печати, которые попадают между двумя ключевыми словами. По сути, автоматизируйте процесс создания n страниц с информацией, а затем с помощью sed обрежьте все ненужные строки. Я хотел бы воспроизвести функциональность sed внутри моего python for loop, чтобы печатались только строки в определенном диапазоне.
import re
import subprocess
from bs4 import BeautifulSoup
def function():
for i in range(0, 22):
url = "http://www.82games.com/1819/18ATL{}.HTM#bypos".format(i)
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
cleantext = BeautifulSoup(page.text, "html.parser").text
text = str(soup)
print(type(text))
print(str(cleantext))
a = str(cleantext)
ans = remove(text)
f = open('results{}.txt'.format(i),'a')
f.write(a + '\n')
subprocess.call(['sed', '-i', '/Production By Postion,/Opponent Counterpart 48-Minute Production/d', 'new.txt'])
f.close()
return ans
def remove(string):
return "".join(string.split())
def cleanhtml(raw_html):
cleanr = re.compile('<.*?>|&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});')
cleantext = re.sub(cleanr, '', raw_html)
return cleantext
if __name__ == '__main__':
function()
# sed -i '/Production By Postion,/Opponent Counterpart 48-Minute Production/d' newfile.txt