Форум сайта python.su
Как выводить названия именно кирилицей??
Можно ли в цикле “ловить” определенную кодировку?
Уже час думаю - пока ничего(
Офлайн
13
Вот так будет кириллица
response = requests.get(url) html = response.content.decode('utf-8')
Офлайн
я не знаю как именно вычленить Description из
<a href “URL”> Название жанра </a>
Подскажите , как можно его вычленить))
Можно ли сделать фильтрацию/поиск по кодировке??
Отредактировано sourser (Фев. 19, 2015 23:07:48)
Офлайн
13
bs=bs4.BeautifulSoup(html) result=[] for i in bs.find_all(class_= 'b-list-links'): for j in i.find_all('a'): result.append(j.text)
Отредактировано Alex_HH (Фев. 20, 2015 16:16:02)
Офлайн
Моя задача вывести:
Название жанра
Ссылку на жанр
ссылка на заданиеYour text to link here…
И я никак не могу вывести название жанров на кирилице.
Решение, чтобы добраться до названия
import requests from bs4 import BeautifulSoup r = requests.get("http://fs.to/video/films/group/film_genre/") responce = r.content page = BeautifulSoup(responce) for tag in page.findAll('li'): a=tag.find('a') print a
type(a) #<class 'bs4.element.Tag'>
<a href="/video/films/film_genre/anime/">Аниме</a>
<a href="/video/films/film_genre/erotika/">Эротика</a>
print a
print a.contents
[u'\u0410\u043d\u0438\u043c\u0435'] .... [u'\u042d\u0440\u043e\u0442\u0438\u043a\u0430']
responce = r.content
responce = r.text
[u'\xd0\x90\xd0\xbd\xd0\xb8\xd0\xbc\xd0\xb5'] ... [u'\xd0\xad\xd1\x80\xd0\xbe\xd1\x82\xd0\xb8\xd0\xba\xd0\xb0']
r = requests.get("http://fs.to/video/films/group/film_genre/") responce = r.content page = BeautifulSoup(responce) tag = page.li print tag.attrs
Отредактировано sourser (Фев. 20, 2015 18:21:48)
Офлайн
13
import requests from bs4 import BeautifulSoup r = requests.get("http://fs.to/video/films/group/film_genre/") responce = r.content.decode('utf-8') page = BeautifulSoup(responce) for tag in page.findAll('li'): a = tag.find('a') print('%s - %s' % (a.get('href'), a.text))
/video/films/film_genre/anime/ - Аниме
/video/films/film_genre/biografiya/ - Биография
/video/films/film_genre/bojevik/ - Боевик
/video/films/film_genre/vestern/ - Вестерн
/video/films/film_genre/vojennyj/ - Военный
/video/films/film_genre/detektiv/ - Детектив
/video/films/film_genre/detskij/ - Детский
/video/films/film_genre/dokumentalnyj/ - Документальный
/video/films/film_genre/drama/ - Драма
/video/films/film_genre/istoriya/ - История
/video/films/film_genre/komediya/ - Комедия
/video/films/film_genre/korotkometrazhka/ - Короткометражка
/video/films/film_genre/kriminal/ - Криминал
/video/films/film_genre/melodrama/ - Мелодрама
/video/films/film_genre/mistika/ - Мистика
/video/films/film_genre/muzikl/ - Мюзикл
/video/films/film_genre/nuar/ - Нуар
/video/films/film_genre/priklucheniya/ - Приключения
/video/films/film_genre/semejnyj/ - Семейный
/video/films/film_genre/triller/ - Триллер
/video/films/film_genre/uzhasy/ - Ужасы
/video/films/film_genre/fantastika/ - Фантастика
/video/films/film_genre/fentezi/ - Фэнтези
/video/films/film_genre/erotika/ - Эротика
import requests from bs4 import BeautifulSoup r = requests.get("http://fs.to/video/films/group/film_genre/") responce = r.content.decode('utf-8') page = BeautifulSoup(responce) for tag in page.findAll('li'): a = tag.find('a') print('http://fs.to%s - %s' % (a.get('href'), a.text))
http://fs.to/video/films/film_genre/anime/ - Аниме
http://fs.to/video/films/film_genre/biografiya/ - Биография
http://fs.to/video/films/film_genre/bojevik/ - Боевик
http://fs.to/video/films/film_genre/vestern/ - Вестерн
http://fs.to/video/films/film_genre/vojennyj/ - Военный
http://fs.to/video/films/film_genre/detektiv/ - Детектив
http://fs.to/video/films/film_genre/detskij/ - Детский
http://fs.to/video/films/film_genre/dokumentalnyj/ - Документальный
http://fs.to/video/films/film_genre/drama/ - Драма
http://fs.to/video/films/film_genre/istoriya/ - История
http://fs.to/video/films/film_genre/komediya/ - Комедия
http://fs.to/video/films/film_genre/korotkometrazhka/ - Короткометражка
http://fs.to/video/films/film_genre/kriminal/ - Криминал
http://fs.to/video/films/film_genre/melodrama/ - Мелодрама
http://fs.to/video/films/film_genre/mistika/ - Мистика
http://fs.to/video/films/film_genre/muzikl/ - Мюзикл
http://fs.to/video/films/film_genre/nuar/ - Нуар
http://fs.to/video/films/film_genre/priklucheniya/ - Приключения
http://fs.to/video/films/film_genre/semejnyj/ - Семейный
http://fs.to/video/films/film_genre/triller/ - Триллер
http://fs.to/video/films/film_genre/uzhasy/ - Ужасы
http://fs.to/video/films/film_genre/fantastika/ - Фантастика
http://fs.to/video/films/film_genre/fentezi/ - Фэнтези
http://fs.to/video/films/film_genre/erotika/ - Эротика
Отредактировано Alex_HH (Фев. 20, 2015 19:00:22)
Офлайн
Результат 1 кода:
Traceback (most recent call last): File "C:\Python27\IT\bs.py", line 11, in <module> print('%s - %s' % (a.get('href'), a.text)) UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-37: ordinal not in range(128) [Finished in 2.5s]
Traceback (most recent call last): File "C:\Python27\IT\bs.py", line 11, in <module> print('http://fs.to%s - %s' % (a.get('href'), a.text)) UnicodeEncodeError: 'ascii' codec can't encode characters in position 45-49: ordinal not in range(128) [Finished in 2.3s]
print('%s - %s' % (a.get('href'), a.text))
print('http://fs.to%s - %s' % (a.get('href'), a.text))
Офлайн
13
Право не знаю с кодировкой как быть, у меня питон 2.7.3, так что я не могу тут помочь.
По поводу вывода, это называется форматирование строк, где в документации почитать не знаю, но вот тут думаю можно глянуть.
Ах да, в начале файла укажите кодировку
# -*- coding: utf-8 -*-
Отредактировано Alex_HH (Фев. 20, 2015 21:35:19)
Офлайн
Подскажите в чем камень преткновения)
В 3-х “интерпретаторах” три разных результата!
Вот код:
import requests from bs4 import BeautifulSoup r = requests.get("http://fs.to/video/films/group/film_genre/") responce = r.content page = BeautifulSoup(responce) for tag in page.findAll('li'): a=tag.find('a') for b in a.contents: print b.string
Traceback (most recent call last): File "C:\Python27\IT\hi.py", line 12, in <module> print b.string UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128) [Finished in 3.3s]
Traceback (most recent call last): File "C:\Python27\IT\hi.py", line 12, in <module> print b.string File "C:\Python27\lib\idlelib\PyShell.py", line 1353, in write s = unicode.__getslice__(s, None, None) TypeError: an integer is required
Отредактировано sourser (Фев. 21, 2015 11:50:18)
Офлайн