Python - Coole Module #2: Beautiful Soup

Words
148
Reading
1 min
Listen
Play
9y

PCMsvg.svg.png
Beautiful Soup ist eine Python-Bibliothek zum Extrahieren von Daten aus HTML- und XML-Dateien.
In diesem Post setze ich die Kenntnisse aus dem letzten Post voraus.


Installation

pip3 install bs4(Python 3)
pip install bs4 (Python 2)


Programm Teil 1

1 import requests
2 from bs4 import BeautifulSoup
3 import bs4
4 x = 'irgendwas'
5 get_parameters = {'q':x,'start':str(0)}
6 html = requests.get('https://www.google.de/search',get_parameters)
7 soup = BeautifulSoup(html.text,'lxml')

Zeile 1 - 6 sollten aus dem letzten Post bekannt sein.
In Zeile 7 wird der Rohe HTML-Code BeautifulSoup übergeben.


Programm Teil 2

In diesem Teil möchte ich den Code etwas durchsuchen.
Dazu öffnen ich Firefox, suche irgendwas und mache ein Rechtsklick auf ein Ergebnis.
Dann klicke ich auf Element untersuchen.
Firefox.png
So durchsuche ich die HTML-Code nach h3 und r und gbeb dies aus:

a  = soup.find_all('h3',class_='r')
print(a)

Output

[<h3 class="r"><a href="/url?q=https://www.duden.de/rechtschreibung/irgendwas&sa=U&ved=0ahUKEwic_6HwlrzZAhWJUlAKHSQtBPEQFghCMAk&usg=AOvVaw0Qu6Z3pRCS9aGiN_Fa-0YG">Duden | <b>irgendwas</b> | Rechtschreibung, Bedeutung, Definition ...</a></h3>, 

url

?q=https://de.wiktionary.org/wiki/irgendwas&sa=U&ved=0ahUKEwic_6HwlrzZAhWJUlAKHSQtBPEQFghHMAo&usg=AOvVaw137hKwKVhXgdfpULPWANUm">irgendwas – Wiktionary,

Yvonne Catterfeld – Irgendwas Lyrics | Genius Lyrics

,

Irgendwas (Lied) – Wikipedia

,

irgendwas - Synonyme bei OpenThesaurus

,

irgendwas : Spanisch » Deutsch | PONS

,

Yvonne Catterfeld - Irgendwas Lyrics | Songtexte-Lyrics.de

,

irgendwas - LEO: Übersetzung im Englisch ⇔ Deutsch Wörterbuch

,

Irgendwas von Yvonne Catterfeld feat. Bengio bei Amazon Music ...

]

Dieser ist sehr unübersichtlich, also ändere ich das im nächsten Schritt.


Programm Teil 2

Den nun gefilterten Code übergeben wir wieder Beautiful Soup und geben den diesmal mit .prettify() aus.
Danach ist der code um einiges übersichtlicher.

soup2 = BeautifulSoup(str(a), 'html.parser')
print(soup2.prettify())

Output

[
<h3 class="r">
 <a href="/url?q=https://www.duden.de/rechtschreibung/irgendwas&sa=U&ved=0ahUKEwjcv4uwmrzZAhVDZFAKHaO_BEkQFghCMAk&usg=AOvVaw3rFAgiGybSUZwell2r4xQq">
  Duden |
  <b>
   irgendwas
  </b>
  | Rechtschreibung, Bedeutung, Definition ...
 </a>
</h3>
,
<h3 class="r">
 <a href="/url?q=https://de.wiktionary.org/wiki/irgendwas&sa=U&ved=0ahUKEwjcv4uwmrzZAhVDZFAKHaO_BEkQFghHMAo&usg=AOvVaw1CbnKaRH0DSoRTGWO6gFb3">
  <b>
   irgendwas
  </b>
   Wiktionary
 </a>
</h3>
,
<h3 class="r">
 <a href="/url?q=https://genius.com/Yvonne-catterfeld-irgendwas-lyrics&sa=U&ved=0ahUKEwjcv4uwmrzZAhVDZFAKHaO_BEkQFghNMAs&usg=AOvVaw0j5B0mSLRAhgrGlO5R11yQ">
  Yvonne Catterfeld 
  <b>
   Irgendwas
  </b>
  Lyrics | Genius Lyrics
 </a>
</h3>
,
<h3 class="r">
 <a href="/url?q=https://de.wikipedia.org/wiki/Irgendwas_(Lied)&sa=U&ved=0ahUKEwjcv4uwmrzZAhVDZFAKHaO_BEkQFghUMAw&usg=AOvVaw2Y9NE0O2EgjX9T-hfVSrAj">
  <b>
   Irgendwas
  </b>
  (Lied)  Wikipedia
 </a>
</h3>
,
<h3 class="r">
 <a href="/url?q=https://www.openthesaurus.de/synonyme/irgendwas&sa=U&ved=0ahUKEwjcv4uwmrzZAhVDZFAKHaO_BEkQFghaMA0&usg=AOvVaw3h5qpGtFOEdLCRj3GYDq6E">
  <b>
   irgendwas
  </b>
  - Synonyme bei OpenThesaurus
 </a>
</h3>
,
<h3 class="r">
 <a href="/url?q=https://de.pons.com/%25C3%25BCbersetzung/deutsch-spanisch/irgendwas&sa=U&ved=0ahUKEwjcv4uwmrzZAhVDZFAKHaO_BEkQFghfMA4&usg=AOvVaw1YudEaYd7MCBX3ngPB7gY1">
  <b>
   irgendwas
  </b>
  : Spanisch » Deutsch | PONS
 </a>
</h3>
,
<h3 class="r">
 <a href="/url?q=https://www.songtexte-lyrics.de/irgendwas-lyrics-yvonne-catterfeld/&sa=U&ved=0ahUKEwjcv4uwmrzZAhVDZFAKHaO_BEkQFghlMA8&usg=AOvVaw3etVcjfRya_uLJNRY4PsXC">
  Yvonne Catterfeld -
  <b>
   Irgendwas
  </b>
  Lyrics | Songtexte-Lyrics.de
 </a>
</h3>
,
<h3 class="r">
 <a href="/url?q=https://dict.leo.org/englisch-deutsch/irgendwas&sa=U&ved=0ahUKEwjcv4uwmrzZAhVDZFAKHaO_BEkQFghrMBA&usg=AOvVaw2-Y6R1P-nNh3JdyfrN5GA5">
  <b>
   irgendwas
  </b>
  - LEO: Übersetzung im Englisch  Deutsch Wörterbuch
 </a>
</h3>
,
<h3 class="r">
 <a href="/url?q=https://www.amazon.de/Irgendwas/dp/B06W9JLWLF&sa=U&ved=0ahUKEwjcv4uwmrzZAhVDZFAKHaO_BEkQFghwMBE&usg=AOvVaw05oV8zbHpec3MZhvCTrNJs">
  <b>
   Irgendwas
  </b>
  von Yvonne Catterfeld feat. Bengio bei Amazon Music ...
 </a>
</h3>
]

Kompletter Code

import requests
from bs4 import BeautifulSoup
import bs4
x = 'irgendwas'
get_parameters = {'q':x,'start':str(0)}
html = requests.get('https://www.google.de/search',get_parameters)
soup = BeautifulSoup(html.text,'lxml')
a  = soup.find_all('h3',class_='r')
print(a)
soup2 = BeautifulSoup(str(a), 'html.parser')
print(soup2.prettify())

Weitere informationen winden sie hier.

Python - Coole Module #2: Beautiful Soup | Ecency