【问题标题】:encoding issue in python scriapingpython scriaping中的编码问题
【发布时间】:2017-09-03 17:54:40
【问题描述】:
<div class="features clearfix">
<span> <img src="/App_Theme/css/img/ico_area.png" width="36" height="36" class="imgvertical">
                78,00 a 207,00 m²             
</span>
<span><img src="/App_Theme/css/img/ico_bed.png" class="imgvertical"></i>  

                            Desde&nbsp;
                            2
            </span> 
<span><img src="/App_Theme/css/img/ico_bath.png" width="36" height="36" class="imgvertical">

                    Desde&nbsp;
                    2        
</span> 
<span><img src="/App_Theme/css/img/ico_garaje.png" width="36" class="imgvertical" height="36">  
                Sin especificar  
</span> 
</div>

试图在上面的标签中删除数据,但是输出字符串只打印不可读的字符,而不是正确的数据

我的代码

import requests
from bs4 import BeautifulSoup
page = requests.get('https://www.fincaraiz.com.co/oceana-52/barranquilla/proyecto-nuevo-det-1041165.aspx')
soup = BeautifulSoup(page.content, 'lxml')
box_2 = soup.find('div' ,'features clearfix')
box_2_1  = box_2.findAll('span')
box2 = []
for row2 in box_2_1:
    box2.append(row2.text)
print (box2)

但它会打印如下所示的输出

[' \r\n 78,00 a 207,00 m²\r\n \r\n ', ' \r\n \r\n Desde\xa0\r\n 2\r\n \r \n \r\n ', '\r\n \r\n Desde\xa0\r\n 2\r\n\r\n \r\n ', '\r\n \r\n 特殊性\r\n \r\n ']

这里的预期输出是:

78,00 到 207,00 平方米 德斯德 2 德斯德 2 特别特别

我已经尝试了 utf-8 编码以及代码,但它仍然提供相同的输出。如何避免 unicode 错误?

【问题讨论】:

    标签: python web-scraping character-encoding python-unicode unicode-string


    【解决方案1】:

    您观察到的不是 unicode 问题。您提取的文本实际上包含换行符 ('\r\n') 和不间断空格,其中 HTML 实体 &amp;nbsp; 被转换为 '\xa0'

    如果您需要删除这些字符,或者用空格替换它们,您可以像这样修改您的代码:

    for row2 in box_2_1:
        text = row2.text
        text = text.replace('\r\n', ' ')
        text = text.replace('\xa0', ' ')
        box2.append(text)
    print(box2)
    

    请注意,这仍然与您在上面提供的预期输出不同。您的代码在box2 中创建了一个列表,因此当您打印该列表时,您会看到方括号和逗号分隔列表元素。如果你不想这样,你可以将列表加入一个字符串,元素之间用空格分隔,如下所示:

    print(' '.join(box2))
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多