[英]Encoding issues with Python and beautifoulsoup
我要从亚马逊上抓取一些页面。 我想存储一些产品的标题。 但是我的编码有问题。
def get_information_products(href):
url = 'https://www.amazon.fr' + href
url = Request(url)
ua = UserAgent()
url.add_header('User-Agent', ua.random)
with urlopen(url) as f:
data = f.readlines()
page_soup = soup(str(data), 'html.parser', from_encoding='iso-8859-1')
title_list = []
try:
title = page_soup.find("span", attrs={"id": 'productTitle'})
print(title.get_text(strip=True))
return title.get_text(strip=True)
except:
return ''
这是获取数据的一段代码。 之后,我要将数据保存到 csv。 但我总是有同样的问题。 我的产品标题是这样的:
OVO Sthira - Lot de 2 Briques de Yoga en Li\xc3\xa8ge Premium - Ultra Fin - Bloc Yoga - Brique Yoga - Block Yoga - Accessoire de Yoga \xc3\xa9cologique
我不知道如何用正确的字符保存数据......
看来你的页面标题是 UTF8 的,你可以试试这个:
str = title.get_text(strip=True)
str.encode("windows-1252").decode('utf8')
如果它是一个纯字符串,您可能需要一个额外的步骤:
str.decode("utf-8").encode("windows-1252").decode("utf-8")
您可以尝试使用unicodedata
模块
import unicodedata
unicodedata.normalize("NFKD",your_text)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.