def test_hubs_extraction(self):
        html = request('GET', 'http://habrahabr.ru/post/269921/').text
        soup = BeautifulSoup(html)

        self.assertSequenceEqual(['криптография',
                                  'информационная безопасность',
                                  'вирусы и антивирусы'],
                                 TopicParser.extract_hubs(soup))
    def test_text_extraction(self):
        html = request('GET', 'http://habrahabr.ru/post/269921/').text
        soup = BeautifulSoup(html)

        self.assertIn('В наше время развелось огромное множество «именитых»'
                      ' специалистов в области информационной безопасности, люди,'
                      ' считающие что знаний по настройке FireWall уже достаточно'
                      ' чтобы причислить себя к «хакерам» или спецам в области ИБ.',
                      TopicParser.extract_text(soup))
    def test_tags_extraction(self):
        html = request('GET', 'http://habrahabr.ru/post/269921/').text
        soup = BeautifulSoup(html)

        self.assertSequenceEqual(['кардинг',
                                  'информационная безопасность',
                                  'деанонимизация',
                                  'кредитные карты',
                                  'даркнет'],
                                 TopicParser.extract_tags(soup))
예제 #4
0
# -*- coding: utf-8 -*-
__author__ = 'AlexF'
from urllib import parse
import json
import os

from requests import request

from HabraClassifier.code import TopicDownloader, TopicParser, TopicCleaner, NotFoundError

parser = TopicParser()
cleaner = TopicCleaner()


def get_raw_point(topic_id: int) -> (list, list):
    topic_html = TopicDownloader.download_topic(topic_id)
    raw_topic = parser.parse(topic_html)
    labels = raw_topic.hubs + raw_topic.tags
    raw_text = raw_topic.text

    return raw_text, labels


def send_classify_request(uri: str, text: str, label_n: int):
    encode = str.encode(text)
    params = {'text': encode, 'label_n': label_n}
    data = parse.urlencode(params)
    return request('POST', uri, data=data)


while True: