#!/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,
#!/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: