Уведомления

Группа в Telegram: @pythonsu

#1 Июль 2, 2016 18:20:23

wallet
Зарегистрирован: 2016-02-21
Сообщения: 50
Репутация: +  2  -
Профиль  

Парсинг сайта, проблема с кодировкой

Добрый всем день, вообщем пытаюсь спарсить страницу сайта, кодировка utf-8:

import requests  
from lxml import html
import re
import urllib2
import lxml
for x in range(1):
    site= "https://steemit.com/life/@kaylinart/how-i-ran-1-mile-a-day-for-11-years-straight"
    hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
       'Accept-Charset': 'utf-8, ISO-8859-1;q=0.7,*;q=0.3',
       'Accept-Encoding': 'none',
       'Accept-Language': 'en-US,en;q=0.8',
       'Connection': 'keep-alive'}
    req = urllib2.Request(site, headers=hdr)
    page = urllib2.urlopen(req)
    html = page.read()
    txt = re.findall('.\w.(.+?)..\w+..', html)
    open('stet.txt', 'a').write(str(txt)+'\n')


в результате выдаёт , что-то вроде этого:
+
ћ
`мQ¤*
С
фL
h†%
Ђ,ї•@*"Њ
xC(.‹=Ј:лл 
Њ
"„‚
]нC#¶
Р
і

при попытке encode decode и прочих танцев с кодировкой выдаёт следующее
UnicodeDecodeError: 'utf8' codec can't decode byte 0x96 in position 1: invalid start byte

кто подскажет, что не так делаю




Отредактировано wallet (Июль 2, 2016 18:20:54)

Офлайн

#2 Июль 3, 2016 00:33:41

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9992
Репутация: +  857  -
Профиль   Отправить e-mail  

Парсинг сайта, проблема с кодировкой

>>> import urllib.request
>>> import gzip
>>> 
>>> url = 'https://steemit.com/life/@kaylinart/how-i-ran-1-mile-a-day-for-11-years-straight'
>>> 
>>> data = urllib.request.urlopen(url)
>>> charset = data.info().get_content_charset()
>>> 
>>> gzipped = data.read()
>>> text = gzip.decompress(gzipped)
>>> 
>>> out = text.decode(charset)
>>> out[:100]
'<!DOCTYPE html><html data-reactroot="" data-reactid="1" data-react-checksum="-980211561"><head data-'
>>>



Офлайн

#3 Июль 3, 2016 11:51:40

wallet
Зарегистрирован: 2016-02-21
Сообщения: 50
Репутация: +  2  -
Профиль  

Парсинг сайта, проблема с кодировкой

py.user.next

Большое спасибо, так работает

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version