Я не могу правильно кодировать одну строку в LATIN-1 - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь получить одну СТРОКУ символов с ВЕБ-САЙТА, ​​но меня не волнует все используемое кодирование / декодирование. Я всегда получаю СТРОКУ с не кодированными символами.

Есть мой код:

#!/usr/bin/env python
# -*- coding: latin-1 -*-
import urllib2
import requests
from BeautifulSoup import BeautifulSoup


url = 'https://www.lavanguardia.com/alminuto'
response = requests.get(url)
html = response.content
soup = BeautifulSoup(html)
contenido = soup.find('ul', attrs={'class': 'results-list'})

for row in contenido.findAll('a'):
    if len(str(row.findAll(text=True)))>2:
        a = row.findAll(text=True)

print str(a).strip("[]'u'").decode('latin-1')

Например, я получаю это:

Луканамарка, Эль-Хамбре-де-Ше-де-ла-Резня

Поставлено:

Луканамарка, Эль-Хамбре-де-ла-резня

anyone Кто-нибудь знает, как я могу кодировать эти ( \ xe9s ) символы для получения правильных результатов?

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

В конце похоже, что мне нужно декодировать последнюю строку с помощью "unicode_escape", вставленной в "latin-1".

print str(a).strip("[]'u'").decode("unicode_escape")
0 голосов
/ 09 июня 2019

Я получаю это: ['Rescatan un total de 100 personas en el mar'] Вот ваш код с несколькими модами. запросы на импорт из bs4 import BeautifulSoup

url = 'https://www.lavanguardia.com/alminuto'
response = requests.get(url)
html = response.content
#soup = BeautifulSoup(html)
soup = BeautifulSoup(response.text, 'html.parser')
contenido = soup.find('ul', attrs={'class': 'results-list'})

for row in contenido.findAll('a'):
    if len(str(row.findAll(text=True)))>2:
        a = row.findAll(text=True)
print(a)
#print str(a.strip("[]'u'")) #.decode('latin-1')
...