2016-05-24 8 views
0

So habe ich eine Aufgabe, die mich erfordert, um Daten von einer Website zu extrahieren, um eine "Top-10-Liste" zu bilden. Ich habe IMDB Top 250 Seite http://www.imdb.com/chart/top gewählt.Notwendigkeit, Daten von einer Website zu extrahieren und speichern in Liste mit Regex

Mit anderen Worten, ich brauche ein wenig Hilfe mit Regex, um die Namen der Filme zu isolieren und sie dann in einer Liste zu speichern. Ich habe den HTML-Code bereits in einer Variablen als String gespeichert (wenn das der falsche Weg ist, lasst es mich wissen).

Auch ich bin begrenzt von Modulen verwenden urlopen, re und HTMLParser

import HTMLParser 
from urllib import urlopen 
import re 

site = urlopen("http://www.imdb.com/chart/top?tt0468569") 
content = site.read() 

print content 
+0

Pl Fügen Sie einfach den Code, den Sie bereits geschrieben haben, und eine spezifische Frage zu Ihrer Frage hinzu. –

+0

Die Verwendung von Regex zum Parsen der Daten ist der falsche Weg, um sie zu erreichen. Im Idealfall sollten Sie BeautifulSoup verwenden, möchten Sie eine Antwort in Regex oder in BS4? – Keatinge

+0

Ich weiß, es ist eine schmerzhafte Art, sich ihr zu nähern, aber die Anforderungen der Aufgabe besagen, dass wir keine anderen Module verwenden dürfen. Deshalb stecke ich fest. –

Antwort

0

Sie sollten wirklich nicht regex verwenden, aber Sie in Ihrem Kommentar angegeben Sie haben, so ist es hier mit regex:

import requests 

respText = requests.get("http://www.imdb.com/chart/top").text 

for title in re.findall(r'<td class="titleColumn">.+?>(.+?)<', respText, re.DOTALL): 
    print(title) 


In BeautifulSoup (die Sie nicht verwenden können)

soup = BeautifulSoup(respText, "html.parser") 
for item in soup.find_all("td", {"class" : "titleColumn"}): 
    print(item.find("a").text) 
+0

Absolut perfekt. Lustig, wie einfach es ist, wenn du es siehst. Prost Kumpel. –

+0

Kein Problem, nur festgestellt, dass Sie keine Anfragen verwenden können, verwenden Sie einfach Ihre Inhaltsvariable anstelle von respText – Keatinge

+0

Ja verstanden, dass. Vielen Dank. –