【问题标题】:Get rid of script text in HTML using beautifulsoup使用 beautifulsoup 去除 HTML 中的脚本文本
【发布时间】:2019-08-16 15:19:31
【问题描述】:

我想分析 HTML 中的所有可见文本。

Url

摆脱我目前使用的所有 HTML 元素:

from bs4 import BeautifulSoup
import re    

soup = BeautifulSoup(test.content, 'html.parser')
#soup_str = soup.get_text() # doesn't help
soup_str = str(soup)

pattern = r'''<.*?>'''
clean_str = re.sub(pattern,' ', soup_str)

这很好用,但我的字符串的开头和结尾仍有一些脚本文本(见下文)。

我还尝试了其他 re 模式,例如 r'''&lt;!-.*}''' 或其他帖子中的建议方法,例如:

for script in soup.find_all('script', src=False):
     script.decompose()

第一种方法不起作用,第二种方法在我的情况下删除了很多嵌入文本。

<!--/email_off--",

            "validThrough": "2019-09-01",

            "hiringOrganization" : {

                "@type" : "Organization",

                "name" : "NAME"},

            "jobLocation":[{"@type":"Place","geo":{"@type":"GeoCoordinates","latitude":"58.1833","longitude":"8.2"},"address":{"@type":"PostalAddress","addressLocality":"Locality","postalCode":"ZIPS","addressCountry":"Country"}}]
                }
            }

  var framefenster = document.getElementsByTagName("iFrame");
  var auto_resize_timer = window.setInterval("autoresize_frames()", 400);

  function autoresize_frames() {
    for (var i = 0; i < framefenster.length; ++i) {

        if(framefenster[i].contentWindow.document.body){

          var framefenster_size = framefenster[i].contentWindow.document.body.offsetHeight;

          if(document.all && !window.opera) {

            framefenster_size = framefenster[i].contentWindow.document.body.scrollHeight;

          }

          framefenster[i].style.height = framefenster_size + 20 + 'px';
        }
    }
  }

谢谢。

【问题讨论】:

  • 你能分享你想删除&lt;script&gt;标签的网址吗?
  • @AndrejKesely 确定,link
  • “我想分析 HTML 中的所有可见文本”是什么意思?您只想显示 html 元素的文本吗?
  • 所以你想删除部分脚本标签而不是整个脚本标签?
  • @alexbclay,是的,我想要所有 html 元素(p、li、h1 等标签)的所有文本。并在我做进一步的 NLP 分析时保持文本的顺序。

标签: regex python-3.x beautifulsoup


【解决方案1】:

显然,该页面将其内容保存在&lt;script&gt; 标记中。为了从中获取内容,我使用了re 模块:

import re
import requests
from bs4 import BeautifulSoup

url = 'https://www.pflegejob.de/index.php?section=anzeige&id=1233125'
soup = BeautifulSoup(requests.get(url).text, 'html.parser')

txt = soup.select_one('script[type="application/ld+json"]').text
txt = re.findall(r'"description": "(.*?)",\s*$', txt, flags=re.DOTALL|re.M)[0]
soup = BeautifulSoup(txt, 'html.parser')

print(soup.get_text(strip=True, separator='\n'))

打印:

Die Evangelische Stiftung Tannenhof leistet mit ca. 525 Behandlungsplätzen, fünf Tageskliniken und drei Institutsambulanzen die psychiatrische Pflichtversorgung für mehr als eine halbe Million Einwohner für die Städte Wuppertal, Remscheid und Velbert. Wir verfügen über eine Reihe störungsspezifischer Behandlungsangebote, u. a. Fachstationen für depressive Störungen, Psychotraumatologie, Psychosomatik, Gerontopsychiatrie und Abhängigkeitserkrankungen.
Außerdem verfügt die Evangelische Stiftung Tannenhof im Rahmen der Eingliederungshilfe für chronisch psychisch kranke und behinderte Menschen über ein spezialisiertes Wohn- und Betreuungsangebot (Bereich Integration – Wohnverbund) mit 170 stationären Wohnplätzen, ambulant betreutem Wohnen und vielfältigen tagesstrukturierenden Angeboten.
Wir suchen zum
01.09.2019 oder später
einen
Gesundheits- und Krankenpfleger, Altenpfleger und / oder Heilerziehungspfleger (m/w/d)
Vollzeit oder Teilzeit, unbefristet
Ihre Aufgaben
Intensive, individuelle und ganzheitliche Betreuung, Begleitung und Beratung von Menschen mit psychischer Behinderung
Erstellung und Fortschreibung von Hilfeplänen im Rahmen der individuellen Hilfeplanung (IHP bzw. BEI_NRW)
Förderung, Wiederherstellung und Erhaltung der Selbstständigkeit der BewohnerInnen/KlientInnen im Rahmen einer aktiven Tagesstruktur und mit Blick auf eine realistische Zukunftsperspektive
Einhaltung von Qualitätsstandards und Dokumentationsanforderungen
Mitwirkung an der Weiterentwicklung unserer Wohnangebote sowie der tagestrukturierenden Angebote
Ihr Profil
abgeschlossene dreijährige Ausbildung in der Gesundheits- und Kranken-, Alten- bzw. Heilerziehungspflege
gerne auch Berufsanfänger (m/w/d)
Verständnis für und Akzeptanz von Menschen mit einer psychischen Behinderung
Engagement für die Unterstützung und Förderung der Selbstbestimmung und Eigenverantwortung der BewohnerInnen
Flexibilität und hohes Verantwortungsbewusstsein
Arbeiten im Schicht- und Bereitschaftsdienst
gute EDV-Kenntnisse
Interesse an Fort- und Weiterbildung
Was wir Ihnen bieten
die Möglichkeit einer Hospitation
eine intensive Einarbeitung
eine interessante, vielseitige und verantwortungsvolle Tätigkeit
motivierte multiprofessionelle Teams und ein angenehmes Betriebsklima
Fort- und Weiterbildungsmöglichkeiten im hauseigenen Diakonischen Bildungszentrum und bei anderen Bildungsträgern
leistungsgerechte Vergütung nach BAT/KF
zusätzliche betriebliche Altersversorgung bei der kirchlichen Zusatzversorgungskasse
möglichst familienfreundliche Dienstplangestaltung
Ihren Kindern steht unsere KITA offen
Wir freuen uns über Ihr Interesse
Für weitere Informationen steht Ihnen
Herr Günter Fuchs,
Leiter Wohnbereich / Integration, gerne telefonisch unter
+49 (0) 2191 12 - 1450 zur Verfügung.
Evangelische Stiftung Tannenhof
Bereich Integration – Wohnverbund
Remscheider Str. 76 | 42899 Remscheid
Jetzt bewerben
<!--/email_off--

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 2010-12-02
    • 2022-01-20
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多