2017-04-11 19 views
0

Ich muss die [', \ n \ xa0 Zeichen und die Jahre (1994) aus diesem Eintrag in der Liste entfernen und dann über die Liste iterieren, indem ich dies für jeden Eintrag tue. gibt es eine Möglichkeit, das kann ich tun? Ich bin ziemlich neu zu Python und haben stundenlangEntfernen bestimmter Zeichen aus den Einträgen in einer Liste

Die Einträge versucht, sind wie folgt:

[['The Shawshank Redemption\n(1994)\n\n\n 9.2\xa0\xa0\n\n'], ['The Godfather\n(1972)\n\n\n 9.2\xa0\xa0\n\n'], ['The Godfather: Part II\n(1974)\n\n\n 9.0\xa0\xa0\n\n'], 

edit: sorry für den Code nicht einschließlich, iv verwaltet die Zahlen abzustreifen und die \ n Zeilenumbrüche nach dem Jahr. aber immer noch Newline-Charakter kurz nach dem Filmtitel. krank meinen Code anwyway Dank !: Paste

from bs4 import BeautifulSoup 
import requests 
import random 

names = [] 
newList = [] 
url = 'http://m.imdb.com/chart/top' 
# get contents from url 
content = requests.get(url).content 
# get soup 
soup = BeautifulSoup(content,'lxml') # choose lxml parser 
# find all the references 
ref_tags = soup.findAll('span', { 'class' : 'media-body' }) 
realTags = soup.find_all("h4") 
# iterate through the ResultSet 
for i,ref_tag in enumerate(ref_tags): 
    # print text only 
    names.append('[{0}] {1}'.format(i,ref_tag.text)) 
pos = 0 
for name in names: 
    newName = names[pos] 
    newName = newName[9:] 
    newName = newName[:100] 
    newName = newName.split("(") 
    newName = newName[::2] 
    del newName[2:9:3] 
    newList.append(newName) 
    pos = pos + 1 

print(newList) 
choice = random.choice(newList) 
print(choice) 

die Ausgabe wie folgt lautet:

[[ 'Die Verurteilten \ n'] [ 'Der Pate \ n'] [ 'The Godfather: Teil II \ n '], [' Der dunkle Ritter \ n '], ['12 Angry Men \ n']

+2

Was haben Sie versucht, genau das nicht funktioniert hat? – nbro

+0

Wie @nbro erwähnt, sollten Sie ein [minimales, vollständiges und überprüfbares Beispiel] hinzufügen (https://stackoverflow.com/help/mcve). – geostocker

Antwort

0

also habe ich es ausgegeben, wie ich möchte. Danke an alle!

heres den Code für jeden, der es in Zukunft brauchen:

from bs4 import BeautifulSoup 
import requests 
import random 

names = [] 
newList = [] 
url = 'http://m.imdb.com/chart/top' 
# get contents from url 
content = requests.get(url).content 
# get soup 
soup = BeautifulSoup(content,'lxml') # choose lxml parser 
# find all the references 
ref_tags = soup.findAll('span', { 'class' : 'media-body' }) 
realTags = soup.find_all("h4") 
# iterate through the ResultSet 
for i,ref_tag in enumerate(ref_tags): 
    # print text only 
    names.append('[{0}] {1}'.format(i,ref_tag.text)) 
pos = 0 
for name in names: 
    newName = names[pos] 
    newName = newName[9:] 
    newName = newName[:100] 
    newName = newName.split("(") 
    newName = newName[::2] 
    del newName[2:9:3] 
    newList.append(newName) 
    pos = pos + 1 

wordChoice = random.choice(newList) 
str = str(wordChoice) 
editWord = str.split("\\n") 



print(editWord[1]) 

und der Ausgang ist etwa so:

Shutter Island 
Verwandte Themen