私のコードを実行しているとき、私はこのエラーを取得するはPython 3でUnicodeEncodeErrorをしてBeautifulSoup4
UnicodeEncodeError: 'ascii' codec can't encode character '\u0303' in position 71: ordinal not in range(128)
これは私の全体のコード、
from urllib.request import urlopen as uReq
from urllib.request import urlretrieve as uRet
from bs4 import BeautifulSoup as soup
import urllib
for x in range(143, 608):
myUrl = "example.com/" + str(x)
try:
uClient = uReq(myUrl)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
container = page_soup.findAll("div", {"id": "videoPostContent"})
img_container = container[0].findAll("img")
images = img_container[0].findAll("img")
imgCounter = 0
if len(images) == "":
for image in images:
print('Downloading image from ' + image['src'] + '...')
imgCounter += 1
uRet(image['src'], 'pictures/' + str(x) + '.jpg')
else:
for image in img_container:
print('Downloading image from ' + image['src'] + '...')
imgCounter += 1
uRet(image['src'], 'pictures/' + str(x) + '_' + str(imgCounter) + '.jpg')
except urllib.error.HTTPError:
continue
しようとしたソリューションです:私は、追加しようとした
.encode/decode('utf-8')
と.text.encode/decode('utf-8')
〜page_soup
ですが、このエラーが発生します。画像のsrc URLの
AttributeError: 'str'/'bytes' object has no attribute 'findAll' or
であなたの
urlretrieve
呼び出しをラップすることにより、それらをスキップ? –page_soupを文字列に変換することは、もはやBeatifulSoupオブジェクトではないことを意味します。だからあなたは 'findAll'を使うことはできません。どのラインがエラーを投げていますか? – TheF1rstPancake
at uRet()[それはurlretrieveです] – Axis