#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = 'ipetrash'

from grab import Grab
from grab.error import GrabNetworkError
import re
from abstract_site_ad_parser import AbstractSiteAdParser, get_logger
from urllib.parse import urljoin
from random import random
import time
import os.path

logger = get_logger('mgnbarnet_parser')


# По-моему, костыль, нужно какой-то метод из коробки использовать
def grab_go(g, url, **kwargs):
    """Функция повторяет запросы, если во время выполнения случаются ошибки grab"""

    logger.info('Отправляю запрос к %s, kwargs=%s', url, kwargs)

    count = 5

    while count:
        try:
            g.go(url, **kwargs)
            break
        except GrabNetworkError as e:
            count -= 1
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = 'ipetrash'


from grab import Grab
from grab.error import GrabNetworkError
from urllib.parse import unquote, urljoin
import re
from abstract_site_ad_parser import AbstractSiteAdParser, get_logger
import os.path


logger = get_logger('vsdelkaruparser')


# По-моему, костыль, нужно какой-то метод из коробки использовать
def grab_go(g, url, **kwargs):
    """Функция повторяет запросы, если во время выполнения случаются ошибки grab"""

    logger.info('Отправляю запрос к ' + url + ', kwargs=%s', kwargs)

    count = 5

    while count:
        try:
            g.go(url, **kwargs)
            break
        except GrabNetworkError as e:
            count -= 1
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = 'ipetrash'


from grab import Grab
from grab.error import GrabNetworkError
from urllib.parse import urljoin
import re
from abstract_site_ad_parser import AbstractSiteAdParser, get_logger
import json
import os.path


logger = get_logger('olxua_parser')


# По-моему, костыль, нужно какой-то метод из коробки использовать
def grab_go(g, url, **kwargs):
    """Функция повторяет запросы, если во время выполнения случаются ошибки grab"""

    logger.info('Отправляю запрос к ' + url + ', kwargs=%s', kwargs)

    count = 5

    while count:
        try:
            g.go(url, **kwargs)
            break
        except GrabNetworkError as e:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = 'ipetrash'


from grab import Grab
from grab.error import GrabNetworkError
import re
from abstract_site_ad_parser import AbstractSiteAdParser, get_logger
from urllib.parse import urljoin
import base64


logger = get_logger('mgnbarnet_parser')


# По-моему, костыль, нужно какой-то метод из коробки использовать
def grab_go(g, url, **kwargs):
    """Функция повторяет запросы, если во время выполнения случаются ошибки grab"""

    logger.info('Отправляю запрос к %s, kwargs=%s.', url, kwargs)

    count = 5

    while count:
        try:
            g.go(url, **kwargs)
            break
        except GrabNetworkError as e:
            count -= 1

from PySide.QtCore import QObject, Signal, QEventLoop
from PySide.QtWebKit import QWebPage, QWebSettings
from PySide.QtNetwork import QNetworkProxyFactory
from PySide.QtGui import QApplication

from avito_im_phone_parser import AvitoPhoneImgParser
import time
import base64

import sys


from abstract_site_ad_parser import get_logger
logger = get_logger('avitoru_ad_parser')


class AvitoAdParser(QObject):
    """Парсер страницы объявления сайта avito.ru"""

    def __init__(self):
        super().__init__()

        self.app = QApplication(sys.argv)

        QNetworkProxyFactory.setUseSystemConfiguration(True)

        self.web_page = QWebPage(self)
        self.web_page.settings().setAttribute(QWebSettings.AutoLoadImages, False)
        self.web_page.loadFinished.connect(self.load_finished)
__author__ = 'ipetrash'

from PySide.QtCore import QObject, Signal, QEventLoop
from PySide.QtWebKit import QWebPage, QWebSettings
from PySide.QtNetwork import QNetworkProxyFactory
from PySide.QtGui import QApplication

from avito_im_phone_parser import AvitoPhoneImgParser
import time
import base64

import sys

from abstract_site_ad_parser import get_logger
logger = get_logger('avitoru_ad_parser')


class AvitoAdParser(QObject):
    """Парсер страницы объявления сайта avito.ru"""
    def __init__(self):
        super().__init__()

        self.app = QApplication(sys.argv)

        QNetworkProxyFactory.setUseSystemConfiguration(True)

        self.web_page = QWebPage(self)
        self.web_page.settings().setAttribute(QWebSettings.AutoLoadImages,
                                              False)
        self.web_page.loadFinished.connect(self.load_finished)
                if bottom < y:
                    bottom = y

    return left, right, top, bottom


def crop_im_phone(im):
    """Функция вырезает из изображения номер сотового и возвращает его копию"""

    left, right, top, bottom = get_margins(im)
    return im.crop((left, top, right+1, bottom+1))


from abstract_site_ad_parser import get_logger
logger = get_logger('avitoru_image_phone_parser')


NUMBERS_DIR = 'numbers'


class AvitoPhoneImgParser:
    """Класс для разбора изображения номера телефона, который дает авито"""

    def __init__(self):
        self.num_img_list = dict()

        logger.debug('Получаю список картинок цифр из папки "%s"', NUMBERS_DIR)
        num_file_list = glob.glob("{}/*.png".format(NUMBERS_DIR))
        num_file_list = sorted(num_file_list)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = 'ipetrash'

from grab import Grab
from grab.error import GrabNetworkError
from urllib.parse import unquote, urljoin
import re
from abstract_site_ad_parser import AbstractSiteAdParser, get_logger
import os.path

logger = get_logger('vsdelkaruparser')


# По-моему, костыль, нужно какой-то метод из коробки использовать
def grab_go(g, url, **kwargs):
    """Функция повторяет запросы, если во время выполнения случаются ошибки grab"""

    logger.info('Отправляю запрос к ' + url + ', kwargs=%s', kwargs)

    count = 5

    while count:
        try:
            g.go(url, **kwargs)
            break
        except GrabNetworkError as e:
            count -= 1
            logger.warn(
                'Произошла ошибка "%s" (количество оставшихся попыток %s)', e,
Example #9
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = 'ipetrash'


from grab import Grab
from grab.error import GrabNetworkError
from abstract_site_ad_parser import AbstractSiteAdParser, get_logger
from urllib.parse import urljoin
from avito_ad_parser import AvitoAdParser
import os.path
import re


logger = get_logger('avitoru_site_parser')


# По-моему, костыль, нужно какой-то метод из коробки использовать
def grab_go(g, url, **kwargs):
    """Функция повторяет запросы, если во время выполнения случаются ошибки grab"""

    logger.info('Отправляю запрос к ' + url + ', kwargs=%s', kwargs)

    count = 5

    while count:
        try:
            g.go(url, **kwargs)
            break
        except GrabNetworkError as e:
                if bottom < y:
                    bottom = y

    return left, right, top, bottom


def crop_im_phone(im):
    """Функция вырезает из изображения номер сотового и возвращает его копию"""

    left, right, top, bottom = get_margins(im)
    return im.crop((left, top, right + 1, bottom + 1))


from abstract_site_ad_parser import get_logger
logger = get_logger('avitoru_image_phone_parser')

NUMBERS_DIR = 'numbers'


class AvitoPhoneImgParser:
    """Класс для разбора изображения номера телефона, который дает авито"""
    def __init__(self):
        self.num_img_list = dict()

        logger.debug('Получаю список картинок цифр из папки "%s"', NUMBERS_DIR)
        num_file_list = glob.glob("{}/*.png".format(NUMBERS_DIR))
        num_file_list = sorted(num_file_list)

        # От 0 до 9 может быть
        if len(num_file_list) != 10: