Только получить скрипты из HTML-файла

У меня есть большой html-файл, содержащий полный код с веб-сайта. Меня интересует только код внутри <script>...<script/> . Есть ли способ легко просто взять эти строки из html-файла? Или мне нужно разделить файл на каждый <script> ? Я хочу игнорировать части, которые появляются перед первым <script> (например, голова), и мне нужно игнорировать теги в конце файла, а также посередине, как там, где он переключается с <head> на <body> .

если вы хотите удалить все теги скриптов:

 from bs4 import BeautifulSoup pagehtml = ''' <li> Text 1 </li> <script> <li> Text 2 </li> <li> Text 3 </li> </script> <li> Text 4 </li> <script> <li> Text 5 </li> </script> ''' soup = BeautifulSoup(pagehtml, 'html.parser') [s.extract() for s in soup.findAll('script')] 

 >>> soup <li> Text 1 </li> <li> Text 4 </li> >>> 

Для анализа html рекомендуется использовать библиотеку синтаксического анализатора html, такую ​​как BeautifulSoup , эта работа не является сложной:

 from bs4 import BeautifulSoup pagehtml = ''' <li> Text 1 </li> <script> <li> Text 2 </li> <li> Text 3 </li> </script> <li> Text 4 </li> <script> <li> Text 5 </li> </script> ''' soup = BeautifulSoup(pagehtml, 'html.parser') 

Теперь, чтобы вернуть список со всеми тегами script , и это внутренне, мы делаем:

 >>> soup.findAll("script") [<script> <li> Text 2 </li> <li> Text 3 </li> </script>, <script> <li> Text 5 </li> </script>] 

Итак, первое:

 >>> soup.findAll("script")[0] <script> <li> Text 2 </li> <li> Text 3 </li> </script> 

И второе:

 >>> soup.findAll("script")[1] <script> <li> Text 5 </li> </script>