Поиск по блогу

Показаны сообщения с ярлыком scrapy. Показать все сообщения
Показаны сообщения с ярлыком scrapy. Показать все сообщения

среда, 11 февраля 2015 г.

Первый рабочий релиз carmailPrice с результатами парсинга

Спайдер выскреб заготовленые страницы в моем ноутбуке и поместил все в таблицу (3727 строки). Кто бы мог подумать, что у нас продавалось такое количество модификаций автомобилей. Здесь плохоочищеный, но работающий код, и ссылки на итоговые таблицы результатов.

вторник, 10 февраля 2015 г.

Слишком "подробно" заданы пути в XPath запросах carmailPrice? Нет! Надо было обработать ошибки

Когда спайдер выдает ошибки при парсинге 2/3 страниц, то начинаются упреки и подозрения. Мне удалось "поймать" паука-халтурщика на странице Daewoo, здесь я сравниваю его поведение на страницах BMW и Daewoo. Трачу на это целый день. Оказалось, что я просто ошибся с "диагнозом". Не на всех страницах модификаций есть ссылки на цены. Спайдер выдавал ошибки, но продолжал работу. Оказалось, что при этом он может пропучкать сразу десятки страниц. Но целый день я искал отличия в коде страниц, здесь фрагменты кода и запросы XPath

вторник, 13 января 2015 г.

Делаем Crawler`а из простого (basic) паука carmailPrice Scrapy

Это продолжение поста "Срочно пишем...". Теперь вместо списка спарсенных вручную ссылок настроим краулера при помощи Rule(lLinkExtractor(allow=r'Items/') ... ) и будем следовать по сылкам на странице. Однако, здесь мы вырежем только по три ссылки со страницы. Чтобы вырезать больше надо знать оси XPath. Об этом потом
Нам понадобится знание регулярных выражений. В предыдущем посте краткий справочник по RE.

воскресенье, 11 января 2015 г.

Подборка примеров Scrapy LinkExtractor, Rules для последующих практикумов

Здесь скопированы десятка полтора фрагментов кода с примерами Scrapy LinkExtractor, Rules Больше двух правил в одном примере мне найти не удалось. Однако, надеюсь, что примеры регулярных выражений здесь на все случай паучьей жизни.

суббота, 3 января 2015 г.

Срочно пишем простого паука carmailPrice со scrapy genspider для того, чтобы увековечить цены на все автомобили

Здесь я повторяю процессы startproject, genspider, ... потом пишем паука со списком начальных URI, добавляем в него def parse(...) с итератором по ссылкам на html-странице. здесь и список ссылок. Вариант работающий на локальном компьютере, но промежуточный. Понадобится, как учебный пример...

суббота, 29 ноября 2014 г.

Примеры настройки логирования в Scrapy и картинка "loggers, handlers, filters, and formatters"

"If you’re ready for that, grab some of your favourite beverage and carry on"... Так я начал читать документацию "дебаггинг для продвинутых", поскольку предстоит писать в длиннющие логи... Сначала я нашел на Stackoverflow варианты вывода логов в фва файла, а потом прочитал еще и мануалы Python...

понедельник, 17 ноября 2014 г.

Зачем нужны Scrapy Feed exports и CsvItemExporter

Первый вариант настройки в документации, второй - super(SlybotCSVItemExporter, self).init(args, *kwargs) - чемпион ГитХаба, для начала я воспроизвел второй вариант от github agrimrules/Python-Web-Crawler но воспроизвел в посте Пробовал "Scrapy feed exporter" ... а до первого варианта здесь так и не дошел... Зато в этом посте около 30 ссылок !

воскресенье, 16 ноября 2014 г.

Попробовал Scrapy HTTPCACHE middleware. Понравилось

Включается FHTTPCACHE_ENABLED, два режима (политики) кэширования, три вида хранилищ, возможность управлять кэшированием для (схем) типов файлов, протоколов ответов серверов, задавать время перезагрузки кэша ...

пятница, 14 ноября 2014 г.

Пробовал "Scrapy feed exporter" Скачал Python-Web-Crawler и сразу же запустил

Код в feedexport.py показался мне необычным - super(CSVkwItemExporter, self).init(args, kwargs) Здесь пример паука, который формирует csv таблицу с двумя последовательными полями, но в строке запуска нужно указать scrapy crawl njit -o 13nov.csv -t csv

понедельник, 27 октября 2014 г.

Первая проба сохранения файла с алиасами в ipdb ".pdbrc is read in and executed as if it had been typed at the debugger prompt"

Здесь постиг умние писать простейшие команды в файл .pdbrc и сохранять его в папке проекта, точнее в папке, запуска дебаггера. А перед этим написал четвертый конспект о PDB. И все это безобразие в Windows...

среда, 22 октября 2014 г.

Исправляем код "Random proxy middleware for Scrapy" и открываем способ поиска в форках

Здесь в качестве упражнения разбираем хрестоматийный пример Random proxy middleware for Scrapy и находим ошибки в устаревшем коде. Результат - рабочий код... и и десяток ссылок для его рефаеторинга. Сложный поиск на GitHub не нашел в форках ... того, что удалось найти по запросу process_exception(self, request, exception, spider) proxy

понедельник, 20 октября 2014 г.

Читаем статью "Проксирование в Scrapy" ... и знакомимся с middleware из проекта "tutorial"

Здесмь я якобы систематизирую мои представления о Scrapy middleware. Читать документацию - дело утомительное. Мне удалось найти короткие статьи на русском, в которых дается три рецепта: 1) http_proxy, 2) Spider settings 3) download middlewatr

суббота, 18 октября 2014 г.

пятница, 17 октября 2014 г.

Разбираем, что делает в Scrapy "downloadermiddleware\httpproxy.py"

В справке к urllib.getproxies() нашел "It scans the environment for variables named _proxy ...and when it cannot find it... looks for proxy information from ... Windows Systems Registry ..." ... и поумнел... По сути httpproxy.py этим только и занимается. Поскольку он включен по умолчанию, то надо попробовать "set (export) http_proxy"

четверг, 16 октября 2014 г.

Первый вариант паука XMLFeedSpider (без pipelines)

Пишу первого паука для парсинга XML фида. Сначала я прочитал документацию и попытался разобраться с основными понятиями. Этот процесс отразился в посте "Читаю документацию XMLFeedSpider", а вот здесь попробовал записать процесс работы над пауком. В итоге работающий полуфабрикат.

вторник, 14 октября 2014 г.

Читаю документацию XMLFeedSpider

Вспоминаю про пространство имен по примеру от Google, запоминаю, что не надо строить все дерево DOM для длинного фида, распечатываю класс XMLFeedSpider

Читаю "Введение в асинхронное программирование и Twisted" ...чтобы понять Scrapy Request

Нашел перевод Введение в асинхронное программирование и Twisted отличного учебного пособия (с кодом на Github). Испытал серврер slowpoetry, из книги постарался запомгнить три важных понятия: асинхронная однопоточная модель, Reactor, Defferer

воскресенье, 12 октября 2014 г.

Читаю серию из 5-ти статей "five life jackets..." - подробный пример Scrapy

Здесь много полезного. Начиная с пауков, советов типа $x(//div), подробно расписан процесс подключения Postgres... Скачал репозиторий. Посмотрел ссылки из статей, добавил "Scrapy Contracts Evolution"... Здесь только ссылки (штук 20)

Ссылки из процесса поиска ПРОКСИ и изучения "DownloadHandler for scrapy that uses socksipy connections"

Я буду пробовать два варианта работы с прокси: 1) TOR - переключение сущностей, 2) Списки прокси... Здесь ссылки на страницы, котрые я не хотел закрывать в течение двух недель... Потом понял, что еще две недели руки до них не дойдут... Поэтому здесь есть и txsocksx, PySocks Github, и Twisted Core, и Socket Programming HOWTO, и telnetlib python example, github scrapy-examples,

суббота, 27 сентября 2014 г.

DownloadHandler for scrapy that uses socksipy connections

Первое впечатление такое, что это именно то, что я искал. Потому здесь полный копипаст. Поскольку подход автора "I simply copied the code for HTTP11DownloadHandler" очень понравился. Все это понадобится мне в ближайшее время.