Python 3,7. Ошибка кодирования ASCII веб-сайта - проблема - PullRequest
0 голосов
/ 13 июля 2020

Это мой первый пост на stackoverflow, и прежде всего я хотел бы поблагодарить всех участников stackoverflow, так как я всегда находил решение.

Однако на этот раз я не нашел ответ, который решает мою проблему.

В настоящее время я изучаю Python (версия 3.7.7.) и пытался создать веб-сканер для страницы comi c. Моя цель - сначала собрать все ссылки в списке результатов, а затем использовать их для извлечения данных comi c из соответствующих экспонатов.

Это действительно работает вполне приемлемо, пока нет ни одного из те: ä, ö, ü, ß et c. Первым решением было заменить эти значения, но теперь появляется следующее сообщение об ошибке:

UnicodeEncodeError: 'ascii' code c не может закодировать символ '\ u2013' в позиции 48: порядковый номер не в диапазоне (128 )

Думаю, есть лучшее решение для правильного преобразования данных 'url', поэтому page = urlopen (req) .read () будет работать независимо от поиска всех возможных замен. Спасибо за вашу помощь

#creating essential lists
linklist = []
comiclist = []

#reading the pages
for x in range(21,31):
    url = 'http://www.comicwebsite.eu/cat/8/Di/'+str(x)+'.html'
    req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
    page = urlopen(req).read()
    page_soup = soup(page, "html.parser")

#main object containing your data
containers_even = page_soup.findAll('tr', class_='browsing_result_table_body_even')

#get specific element
for container in containers_even:
    link_all = container.findAll('a')[1]['href'].replace('ä','ae').replace('ö','oe').replace('ü','ue').replace('Ä','ae').replace('Ö','oe').replace('Ü','ue').replace('ß','ss')
    link = 'http://www.dersammler.eu/' + link_all
    linklist.append(link)
 
#variable determing range for next loop
anzahl = len(linklist)

for y in range(0,anzahl):
    url = linklist[y]
    req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
    page = urlopen(req).read()
    page_soup = soup(page, "html.parser")
    container_detail = page_soup.findAll('div', class_='content_shell')

for contain_detail in container_detail:
    ...remaining_code...

Спасибо за вашу помощь.

Сообщение об ошибке вызвано последней page.urlopen (req) .read () в for yl oop .

...