2016-06-16 1 views
0

Je suis en train de saisir toutes les lignes de Kramer de chaque épisode de Seinfled sur ce site:texte BeautifulSoup en dehors des balises

http://www.imsdb.com/TV/Seinfeld.html

Je l'ai déjà tiré la liste des noms d'épisode dans un fichier I Étiqueté episode-list.txt

J'essaye maintenant de juste analyser les lignes après KRAMER mais ils semblent être en dehors des étiquettes, qui est où je suis perplexe. Voir ici ->http://www.imsdb.com/transcripts/Seinfeld-Good-News,-Bad-News.html

Voici le code que j'essaie de lancer en utilisant BeautifulSoup. Tous les indices seraient très appréciés. Aussi, tout conseil non sollicité est par la présente sollicité haha. Si vous voyez quelque chose que je fais qui vous frappe comme codage maladroite ou brutale, j'aimerais les commentaires.

À la votre!

from BeautifulSoup import BeautifulSoup 
import requests 

text = open ("episode-list.txt","r") 


for line in text.readlines(): 
    url = "http://www.imsdb.com/transcripts/Seinfeld-" + line.strip('\n').replace(" ", "-") + ".html" 
    r = requests.get(url) 
    soup = BeautifulSoup(r.content) 
    for tag in soup: 
      print soup.findAll('???') 

Répondre

1

Voici un extrait de code pour servir de référence pour vous aider à démarrer ...

import re 
from bs4 import BeautifulSoup 

html = """ 
<b>        KRAMER 
</b>    (enters) Are you up? 

<b>    
</b><b>        JERRY 
</b>    (To Kramer) Yeah...(in the phone) Yeah, 
       people do move! Have you ever seen the 
       big trucks out on the street? Yeah, 
       no problem (hangs up the phone). 
<b> 
</b><b>    
</b><b>        KRAMER 
</b>    Boy, the Mets blew it tonight, huh? 
""" 

soup = BeautifulSoup(html, 'html.parser') 
for kramer in soup.find_all('b', text=re.compile("\s+KRAMER\s+")): 
    print kramer.next_sibling.strip() 

sortie sera ...

(enters) Are you up? 
Boy, the Mets blew it tonight, huh?