[#]
Разделение Хабра
vit01(mira, 1) — All
2014-10-14 10:53:43
Совсем недавно тематические медиа сделали новый ресурс - GeekTimes
http://habrahabr.ru/company/tm/blog/240135/ http://geektimes.ru
, куда переносятся все нетехнические и "оффтоповые" хабы и статьи. Как я понял, вся новостная лента IT, всё про Роскомнадзор, копирайты, космонавтику и прочее переносится туда.
Так как ленты хабра у нас пока нет, прошу принять во внимание, что теперь придётся фетчить 2 ресурса.
[#]
Re: Разделение Хабра
vit01(mira, 1) — Difrex
2014-10-14 12:24:42
>Давайте уже хоть что-нибудь попробуем зафетчить =)
Аккаунт на Хабре у Андрея, поэтому все вопросы к нему =)
[#]
Re: Разделение Хабра
vit01(mira, 1) — Difrex
2014-10-14 13:21:57
>Так а зачем там акк нужен? Можно тащить хаб linux, например.
Чтобы сделать полный список подписок из кучи хабов и тащить их все вместе, а не каждый по-отдельности
[#]
Re: Разделение Хабра
Difrex(station13, 7) — vit01
2014-10-14 14:41:29
>Чтобы сделать полный список подписок из кучи хабов и тащить их все вместе, а не каждый по-отдельности
Хм, мне было бы интересней по-отдельности. Например, мне не очень хочется читать про очередную перестановку кнопочек у убунточке. По-этому на какую-нибудь эху habra.ubuntarium.999 я бы не подписывался :)
[#]
Re: Разделение Хабра
vit01(mira, 1) — Difrex
2014-10-14 14:54:24
>Хм, мне было бы интересней по-отдельности.
Не слишком ли много эх будет?
> Например, мне не очень хочется читать про очередную перестановку кнопочек у убунточке.
> По-этому на какую-нибудь эху habra.ubuntarium.999 я бы не подписывался :)
А как же нескучные обои? =)
Вообще, и правда неплохо бы было разделение.
Хотя с другой стороны, удобнее получать все статьи сразу в одной эхе. Тут уж как Андрей решит, так и будем читать.
[#]
Re: Разделение Хабра
spline(station13, 1) — vit01
2014-10-14 14:09:16
>Аккаунт на Хабре у Андрея, поэтому все вопросы к нему =)
Блин, ребят. Извините =)
Сегодня запущу тестовую эху с подписками на хабре какие есть. Информацию по разделению хабра учту чуть позже.
[#]
Re: Разделение Хабра
spline(station13, 1) — Difrex
2014-10-14 14:59:24
>Хм, мне было бы интересней по-отдельности. Например, мне не очень хочется читать про очередную перестановку кнопочек у убунточке. По-этому на какую-нибудь эху habra.ubuntarium.999 я бы не подписывался :)
С одной стороны, да. С другой стороны, очень уж не хочется плодить кучу эх, так как это ложится на плечи сисопа и придётся много перекатываться.
[#]
Re: Разделение Хабра
Difrex(station13, 7) — spline
2014-10-14 18:36:43
>есть вероятность что если у нас и будет хабр, то не с моей ноды =(
Давай код. Могу развернуть у себя =)
[#]
Re: Разделение Хабра
spline(station13, 1) — vit01
2014-10-14 15:07:04
>Тут уж как Андрей решит, так и будем читать.
Тестовую эху запущу в кучу, а дальше как пойдёт.
[#]
Re: Разделение Хабра
spline(station13, 1) — Difrex
2014-10-14 18:16:23
>Чем парсишь, кстати?
feedparser + lxml
Первым выдираю ленту, вторым выдираю целые статьи. Но в силу того, что lxml так просто на сервере мне нынче не поставить, есть вероятность что если у нас и будет хабр, то не с моей ноды =(
[#]
Re: Разделение Хабра
spline(station13, 1) — spline
2014-10-14 17:48:50
Тестовая эха отменяется в ближайшее время. Мне не хватает кое чего на сервере -- придётся упростить парсер.
[#]
Re: Разделение Хабра
Difrex(station13, 7) — vit01
2014-10-14 19:12:47
>>есть вероятность что если у нас и будет хабр, то не с моей ноды =(
>Могу на своём домашнем сервере запустить гейт. Только вот по ночам мне его держать включённым нельзя, и очень жаль.
Айда ко мне на сервак :D
[#]
Re: Разделение Хабра
Difrex(station13, 7) — Difrex
2014-10-15 11:04:29
>>Какая там ОС? :D
>Убунту 12.04
Но я тебе могу твой любимы дистрибутив развернуть, если что =)
[#]
Re: Разделение Хабра
Difrex(station13, 7) — Difrex
2014-10-14 18:56:33
Точнее я тебе могу дать шелл у себя.
Скажешь только какие тебе пакеты поставить.
[#]
Re: Разделение Хабра
vit01(mira, 1) — Difrex
2014-10-15 12:12:37
>>Убунту 12.04
Чужой сервер, от которого мне отец дал доступ - тоже на Ubuntu 12.04. Но там как-то рисково запускать всякие штуки: админ придёт и всё удалит, а то ещё и пароль сменит :)
>Но я тебе могу твой любимы дистрибутив развернуть, если что =)
Спасибо, не надо мне ещё серверов :)
А вообще, у меня на домашнем сервере стоит Арч.
[#]
Re: Разделение Хабра
vit01(mira, 1) — spline
2014-10-14 18:43:32
>Но в силу того, что lxml так просто на сервере мне нынче не поставить
А скомпилить нельзя?
>есть вероятность что если у нас и будет хабр, то не с моей ноды =(
Могу на своём домашнем сервере запустить гейт. Только вот по ночам мне его держать включённым нельзя, и очень жаль.
[#]
Re: Разделение Хабра
spline(station13, 1) — Difrex
2014-10-24 07:23:02
>Но я тебе могу твой любимы дистрибутив развернуть, если что =)
Это ни к чему. Может, развернём там ноду для хабра? =)
[#]
Re: Разделение Хабра
Difrex(station13, 7) — spline
2014-10-24 11:11:15
>Может, развернём там ноду для хабра?
Ага, я так и хотел сделать =)
Уже почти свой фетчер хабры написал :D
[#]
Re: Разделение Хабра
vit01(mira, 1) — spline
2014-10-24 19:47:43
А у меня вот такой скрипт рассылки используется в твоём rss-фетчере
ii://lenta.dark.14
#!/usr/bin/python2
# -*- coding:utf8 -*-
import urllib,base64,os
authstr="мой пароль от ноды"
adress="http://ii-net.tk/ii/ii-point.php?q=/u/"
files=os.listdir("tosses") # каталог с раскиданными сообщениями
for file in files:
f=open("tosses/"+file).read()
code=base64.b64encode(f)
data = urllib.urlencode({'tmsg': code,'pauth': authstr})
out = urllib.urlopen(adress + 'point', data).read()
print out
if out.startswith('msg ok'):
os.remove("tosses/"+file)
Тут совсем всё просто и понятно
[#]
Re: Разделение Хабра
spline(station13, 1) — Difrex
2014-10-24 13:47:39
>У меня стоят эти пакеты =)
Тогда надо смотреть что
html.tostring (page.find_class ("content html_format")
Выдаёт там. Я никаких воркэраундов не лепил просто и у себя на системе только тестировал.
[#]
Re: Разделение Хабра
spline(station13, 1) — Difrex
2014-10-24 13:25:16
Ему нужны две дополнительные либы: feedparser и html2text. Причём второе требует соответствующий пакет в системе (это и послужило препятствием внедрению у меня на ноде).
[#]
Re: Разделение Хабра
spline(station13, 1) — Difrex
2014-10-24 12:49:16
>Так, а как он должен работать, фетчер?
Кладём в директорию tools/client-toss вот такой скрипт и создаём поддиректорию msgs/RSS-bot. В неё скриптом habr2ii.py буду ссыпаться сообщения для тоссинга.
#!/bin/bash
#cd /srv/www/spline.rooker.ru/data/ii/tools/client-toss/
HISTORY=1 # Если установлено в 0, сообщения удаляются. Иначе переносятся в директорию histo
IIURL=http://127.0.0.1:62220/u/point
POINTS='../points.txt' # Путь к списку поинтов относительно данного скрипта
MKTOSS='../../mktoss.py' # Путь к тоссеру относительно директории поинта
ROOT_PWD=$(pwd)
for DIR in $(find ./msgs/ -maxdepth 1 -type d); do
POINT=$(echo $DIR | sed 's/.\/msgs\///')
if [[ $POINT != '' ]]; then
PAUTH=$(cat $POINTS | grep $POINT | sed 's/:.*//')
cd $DIR
for MSG in $(find ./ -maxdepth 1 -type f -name "*.txt"); do
python2.7 $MKTOSS $MSG
wget -q --header="Host: spline.rooker.ru" $IIURL -O - --post-data "pauth=$PAUTH&tmsg=$(cat $MSG.toss)"
if [[ $HISTORY == 0 ]]; then
rm $MSG
else
if ! [ -d ./histo ]; then
mkdir ./histo
fi
mv $MSG ./histo
fi
rm $MSG.toss
done
fi
cd $ROOT_PWD
done
Добавляем поинта в points.txt. Потом в habr2ii.py указываем путь для сыпания сообщений, линк на feed и название эхи.
$ python habr2ii.py && autotosspost.sh всё.
Немного путано, но это создавалось для моей ноды, а там такая система сложилась исторически и сейчас нет ни времени ни особого желания её переделывать.
[#]
Re: Разделение Хабра
Difrex(station13, 7) — spline
2014-10-24 13:18:54
python habr2ii.py
Traceback (most recent call last):
File "habr2ii.py", line 40, in <module>
f.write (get_content (rss.entries[i].link).encode ("UTF-8"))
File "habr2ii.py", line 18, in get_content
text = h.handle (html.tostring (page.find_class ("content html_format")[0]))
IndexError: list index out of range
[#]
Re: Разделение Хабра
spline(station13, 1) — Difrex
2014-10-31 14:57:26
Версии python-html2text и lxml какие? Пока я нашёл неприятный баг со старой версией html2text.
[#]
Re: Разделение Хабра
spline(station13, 1) — Difrex
2014-11-05 15:00:15
Отлично, но для этого сгодился бы любой RSS-фетчер на самом деле =)
Соль была в репосте статей целиком в формате markdown. Как учёбу разгребу, попробую накалякать что-нить менее требовательное к сторонним библиотекам. Где-то на уровне lxml проблема, судя по всему. Причём отловить её мне так и не удалось -- на одном и том же линке получаю разные данные и никогда статью целиком. Всегда это какой-то кусок страницы.
[#]
Re: Разделение Хабра
vit01(mira, 1) — vit01
2014-11-05 14:55:08
Оу, тут куча пустых мест, хтмл теги и до хабраката :(
Ну ничего, и так читать можно =)
Спасибо, что даже так у нас есть, чего почитать =).
[#]
Re: Разделение Хабра
spline(station13, 1) — Difrex
2014-11-05 15:01:40
До кучи сделай замену вот такого вот [img habrastorage.org/files/112/e60/c80/112e60c801d640e9be72430911ab5abd.jpg" align="right" width="300] на директ-линки на изображения =)
[#]
Re: Разделение Хабра
Difrex(station13, 7) — spline
2014-11-05 15:12:46
Да, проблемы есть. Набросал на коленке.
Можете в один пост баги написать, я все поправлю? :)
[#]
Re: Разделение Хабра
vit01(mira, 1) — Difrex
2014-11-05 16:59:46
>Я просто заменяю > на '\n'
Лучше заменять на пробел, а то с \n читать совсем неудобно.
>Не вижу смысла тянуть всю статью. Она может быть не интересна совсем. А так, если захочется, то можно кликнуть на "читать дальше" и перейти на всю статью.
Логика понятна, жаль, что у нас тянутся все хабы, а не только те, которые нужны. Но просто удобнее не ходить по ссылкам постоянно, а читать всё в ii
>Куда сохранять? Линки же вроде остаются...
Теперь вижу :)
[#]
Re: Разделение Хабра
vit01(mira, 1) — Difrex
2014-11-05 15:40:04
> Можете в один пост баги написать, я все поправлю? :)
1. Много пустых мест и отступов в содержимом
2. Отображается не вся статья, а только начало
3. Вместо нормальной читаемой разметки html-теги
4. Неплохо бы сохранять ссылки на картинки, чтобы посмотреть можно было
[#]
Re: Разделение Хабра
Difrex(station13, 7) — vit01
2014-11-05 19:04:36
>жаль, что у нас тянутся все хабы, а не только те, которые нужны
Сейчас тянется только hub/linux/
Говорите, на какие подписаться :)
[#]
Re: Разделение Хабра
Difrex(station13, 7) — Difrex
2014-11-05 19:08:36
И еще такой вопрос:
Тянуть статьи из песочницы или нет? Сейчас они пропускаются.
[#]
Re: Разделение Хабра
Difrex(station13, 7) — vit01
2014-11-05 16:40:25
>1. Много пустых мест и отступов в содержимом
Я просто заменяю <br> на '\n'
>2. Отображается не вся статья, а только начало
Не вижу смысла тянуть всю статью. Она может быть не интересна совсем. А так, если захочется, то можно кликнуть на "читать дальше" и перейти на всю статью.
Хотя смысл во всей статье тоже есть. Подумаю над этим. Собственно говоря, добавить фетчер всей стать -- совсем не проблема.
>3. Вместо нормальной читаемой разметки html-теги
Работаю над этим =)
>4. Неплохо бы сохранять ссылки на картинки, чтобы посмотреть можно было
Куда сохранять? Линки же вроде остаются...
[#]
Re: Разделение Хабра
Difrex(station13, 7) — Difrex
2014-11-05 19:29:35
Проба markdown. Там у них на хабре переодически прилетают всякие div, s и прочие html-теги. Надо придумать, как их правильно пропускать.
Кто там говорил про статью про парсилку хабры на хабре? =)
[#]
Re: Разделение Хабра
Difrex(station13, 7) — ntrknlmp.exe
2014-11-06 13:46:39
>можно простым регэкспом вырезать все html теги. как вариант
Так и сделал