2016-11-05 2 views
0

discogs.comからアーティストを拝借しています。私はページに表示されるアーティスト名を取得することができません。例えば。私のコードを実行すると、アーティストAndrésがAndr \ xe9sとして表示されます。美しいスープとパイソンを使ってアクセントや外来文字を印刷する

誰も私が間違ってやっているかを説明することはできますか?

from bs4 import BeautifulSoup 
    import requests 
    import urllib2 
    from itertools import chain 
    import codecs 

    headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.0; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0' } 

    all_artists = [] 

    result_pages = 1 #446 

    def load_artists(): 
     for page in xrange(1, result_pages+1): 
      url = url = 'https://www.discogs.com/search/?sort=have%2Cdesc&style_exact=House&genre_exact=Electronic&decade=2010&page=' + str(page) 
      r = requests.get(url, headers = headers) 
      soup = BeautifulSoup(r.content.decode('utf-8'), 'html.parser') 
      [all_artists.append(tag["title"]) for tag in soup.select('div#search_results h5 span')] 

    load_artists() 

    all_artists 

答えて

0

あなたがのpython3を使用する必要がある、とあなたはもはや苦しむませんこの

0

何が間違っではありません、彼らは、Unicodeとして出力され、あなたがそれらを印刷するためにはPythonを要求したとき、彼らは正しく印刷:

for a in all_artists: 
    print(a) 

... 
Andrés 
... 
+0

印刷するのと同じ方法で保存されるように、リストに保存するにはどうすればよいですか?検索クエリにこれらの名前を使用する必要があります – Sal

+0

ユニコードとして保存する方がやや安全です。検索するサービスによって異なります。例については、[here](http://stackoverflow.com/questions/4777764/unicode-error-trying-to-call-google-search-api)を参照してください。 –

関連する問題