繁体   English   中英

Python 和 beautifoulsoup 的编码问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM