这是我在stackoverflow上的第一篇文章,首先,我要感谢所有stackoverflow的贡献者,因为我一直在寻找解决方案。
但是,这次我没有找到解决我问题的答案。
我目前正在学习Python(3.7.7版),并尝试为漫画页面构建网络爬虫。我的目标是首先收集结果列表中的所有链接,然后使用它们从各自的公开位置检索漫画数据。
只要没有以下任何一项,这实际上是可以通过的:ä,ö,ü,ß等。第一个解决方案是替换这些值,但是现在出现此错误消息:
UnicodeEncodeError:'ascii'编解码器无法在位置48编码字符'\ u2013':序数不在(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...
谢谢您的帮助。
错误消息是由for y循环中的最后一个page.urlopen(req).read()引起的。