2016-11-05 42 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

將其存儲爲unicode會更安全一些。這取決於您正在搜索的服務。有關示例,請參閱[這裏](http://stackoverflow.com/questions/4777764/unicode-error-trying-to-call-google-search-api)。 –