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

среда, 10 сентября 2014 г.

Списки плагинов для Chrome (подбирал по темам cookie, proxy, REST)

Это было начало работы по подбору плагинов для работы со Scrapy. Классический случай, когда приходится перелопачивать уйму информации понимая, что знаний не хватает. А в плагинах должно быть собрано все самое лучшее (например, как бы я узнал про .pac файлы для proxy)

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

В Wireshark cуществует опция "Allow subdissector to reassemble TCP streams", она помогает оценить длительность HTTP загрузки

Как осуществляется инкапсуляция, когда HTML страничка "длинная"?  Её, естественно разбивают на фрагменты, каждый из фрагментов затем запихивают в область данных TCP контейнера. Здесь короткие видеоролике о том, как построить график длительностей загрузок

Два примера использования Regex в Wireshark из видеоролика

В видео "Use Regex to Filter for a Group of Phrases" объясняется, что в строке фильтра можно использовать регулярные выражения типа http.request.uri matches "(attachment|tar|exe|zip)"
Ограничиваем область поиска и задаем фильтр...

пятница, 5 сентября 2014 г.

Data в Sequre Sockets Layer - это всегда подозрительно, Wireshark Protocol Hierarchy Statistics

Посмотрел видео, добавил сюда еще и текст и картинку из моего компьютера. Видео надо будет просмотреть еще раз, там есть упоминания о том, что это за ""Data"...
Data в протоколе TCP являются подозрительными. Откроем Statistics -> Protocol Hierarchy, отфильтруем, при клике правой кнопкой по строчке открывается контекстное меню... потом снова откроем...

Диагностируем ошибки TCP по этим видео... Потом пытаемся понять, что за ошибки имела в виду Laura Chappell

Здесь я заготовил два видео с текстом "Create the "Golden Graph", "Find TCP Problems Fast ..." in Wireshark (Correlate Low Bandwidth with TCP Errors)". Хочу выяснить, что автор считает "TCP Errors". Оказывается, их можно скопировать из "Coloring Rules" ... В итоговый график включить обычный TCP и отфильтрованый... и использовать логарифмический масштаб, как на картинке из видео1...
А из второго видео пытаемся понять, что это за фильтр: tcp.analysis.flags && !tcp.analysis.window_update

четверг, 4 сентября 2014 г.

Как оценить TTL (TCP Options) задержку ответа... видео о TimeStsmps в Wireshark

Квадратные скобки, например [Time since first frame in this TCP stream: 0.073505000 seconds] в раздела TCP wireshark означают, что это не стандартный параметр протокола TCP, а интерпретация Wireshark.
Здесь в 7-минутном ролике @laurachappell показывает, как добавить два варианта столбцов Timestamps в общую таблицу. А во втором фрейме TCP Extensions for High Performance rfc1323

среда, 3 сентября 2014 г.

При запуске NETSH (в Windows) программа рекомендовала мне использовать Power Shell, а потом я прочитал About WinHTTP

Netsh позволяет настраивать параметры сетей. В частности netsh winhttp show proxy (в предыдущем посте есть картинка о связи Fiddler и winhttp) ... Сюда я скопировал из консоли несколько справок (на русском) и мой первый запуск Power Shell... и с десяток ссылок: "Общие сведения о командах Netsh"... "How to Start Windows PowerShell on Windows 8" ...Netsh.exe and ProxyCfg.exe Proxy Configuration Tools

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

Fiddler - все ссылки и видеоролики. Особенности - WinHTTP, CryptoIP, WinINET... и Internet Explorer

Скрипач может через IE мониторить трафик 127.0.0.1 (Monitor traffic to localhost from IE or .NET) и расшифровывать HTTPS трафик, в остальном работает, как и большинство снифферов, как прокси-сервер (:8889), может встраиваться в цепочки прокси..., в браузерах нахально прописывается сам ...

воскресенье, 31 августа 2014 г.

Ссылки на RawCap и Powershell script чтобы отслеживать localhost (127.0.0.1) в Wireshark

Перехватчик процессов GTK+ не отслеживает localhost (127.0.0.1)Как преодолеть этот недостаток wireshark? Я использовал RawCap ... но есть еще способ "Powershell script to enable windows to capture localhost traffic in wireshark" Я здесь на всякий случай скопировал код из этого блога

четверг, 28 августа 2014 г.

Здесь советы по использованию переменной окружения HTTP_PROXY (HTTPS_PROXY)

Загнать всех в цепочку прокси можно переменной окружения HTTP_PROXY (HTTPS_PROXY) Из консоли выполняем в windows - set, в Linux - export... Но значит ли это, что все TCP/IP соединения начнут использовать прокси автоматически? Выходит, что таки да. Есть даже переменная "no_proxy" Но я, однако, сомневаюсь... но проще попробовать, чем искать ответ в сети... Не забыть опубликовать ответ в комментариях.

среда, 27 августа 2014 г.

вторник, 26 августа 2014 г.

Wiki, developer`s guide, первые подборки видео и отборные статьи для практикумов по WireShark

Очень понравилась статья "Wireshark — приручение акулы". Здесь просто ссылка на нее и несколько видео, которые я посмотрел до этого. Потом я нашел подборки на статей Хабре... "Первые несколько миллисекунд HTTPS соединения", "EFF рекомендует сниффер против нечестных провайдеров", "Фильтры захвата для сетевых анализаторов (tcpdump, Wireshark, Paketyzer)", потом обнаружил wiki Wireshark. А там, например, Wireshark Loopback capture setup

понедельник, 25 августа 2014 г.

RawCap - может захватывать 127.0.0.1, Proxy/spider tool suites, sequrity tools - ссылки на обзоры

Здесь ссылки на снифферы и обзоры. Задавшись вопросом о том, что мне нужны инструменты для просмотра http заголовков, я начал пробовать Telnet... понял, что надо понимать и заголовки tcp, ip, ethernet... Вспомнил про книгу "Технологии защиты информации в интернете" Попытался найти ее электронную версию, не нашел сразу... но нашел потом (см. более поздние посты).

среда, 20 августа 2014 г.

Не нашел, как решить проблему сброса Telnet в Windows, но в Linux все работает, даже примеры с telnetlib

Тупая проблема с Telnet в windows. Соединение закрывается. Тупая потому, что надо найти где и на что нажимать. Консоль просто подвисает... Здесь штук 20 ссылок - процесс поиска решения... Но вот я догадался попробовать telnet в Linux... и все заработало. Зачем вообще разбираться с тем, как при помощи Telnet имитировать заголовки и запросы браузера? Пожалуй только потому, что Python позволяет читать ответы и программировать разные варианты переговоров. В конце поста примеры с telnetlib и многочисленные ссылки, например, есть упоминание "...Another method is to use netcat" .

понедельник, 11 августа 2014 г.

Как работать в Scrapy shell через прокси. Поски привели к request.meta Последующие эксперименты с TOR озадачили

Объект shell request - обертка для реклизации класса Request. Пример работы с объектом из оболочки здесь Problem logging into Facebook with Scrapy, а в этом посте мои эксперименты с request response, settings... Пост кончается тем, что я соединился с проверочным сервисом TOR (через Privoxy - TOR), а он мне сказал SORRY...

воскресенье, 10 августа 2014 г.

Распечатываем scrapy и scrapy.crawler.Crawler.settings

Рассматриваем страницу руководства Core API и читаем там, что есть настройки по умолчанию. А эти настройки можно переопределить при вызове из консоли, в файле settings.py проекта в конкретном пауке (из папки spider). А как менять такие параметры, как proxy из shell? Сразу не разберешь, потому здесь распечатываю файлы дефолтных настроек и фрагменты документации "Core API", "Requests and Responses".

пятница, 8 августа 2014 г.

Понял, как подменять user-agent Scrapy shell...

Как менять параметры запроса в Scrapy shell? При запуске shell можно менять константы (объекта) settings, а при работе из запущенной оболочки shell можно менять параметры (словаря) объекта запроса response в команде fetch(myresponse). В первом случае надо найти в документации, как пишется -s USER_AGENT, а во втором распечатать словарь объекта request.headers { ... 'User-Agent': 'Scrapy/0.20.1 (+http://scrapy.org)'}

среда, 6 августа 2014 г.

Проба запустить паука через TOR была отложена из-за того, что IDE Spyder не увидел новую папку. Раз способности ослабевают, ...

...надо дробить процесс на маленькие элементы - потому отложу TOR и попрактикую Scrapy shell. В середине недели пришлось отложить подключение TOR и прочитать IDE Spyder ... Оказалось, что этот редактор показывает (во всех эксплорерах) содержимое подпапки проекта, но при работе в редакторе вызов из модуля (или консоли) обычного импорта объекта из другого модуля выдает ошибку... оказывается, я просто забыл про init() в папке

понедельник, 4 августа 2014 г.

Установка privoxy на windows для работы с TOR

Попытки найти файл для установки Polipo на Windows заняли много времени, поскольку разработчики предлагали скомпилировать экзешник самостоятельно. Скачал чей-то готовый для пробы, но пришла в голову мысль - посмотреть Privoxy. Его и установил... Здесь копия конфигурационного файла.

пятница, 1 августа 2014 г.

Первый спайдер-сырец с тремя объектами pipeline (работающий четвертьфабрикат)

Снова подправил mail_csv_2_1.py Получил почти окончательный вариант паука, который парсит csv, и добавляет поле rtesponse.url. Потом первый объект pipeline убирает первые две строчки, а второй pipeline из поля URL выбираеит нужные подстроки. Сначала мы записываем все поля в файл, используя опцию (scrapy crawl mail_csv_2_1 -o items_2_2.csv -t csv), а потом дописываем модуль'scrapy_csv_2.pipelines_tofile.CsvWriterPipeline' Этот пост - решение всех задачек, которые возникали в предыдущих постах.

вторник, 29 июля 2014 г.

Метод split объекта str и другие методы строки

В предыдущем посте оператор ** "i['purlplit'] = i['purl'].split("/")[-1]"** выдает пустую строку. Здесь мы проверили, как работает метод split и распечатали help(str). Хотя оказалось, что строка "хитрая", причина в особенностях работы объекта Item (следующий пост).

суббота, 26 июля 2014 г.

Пробуем добавить поля в паука mail_csv_2_1. Парсим i['proj_name'] = response.url.split("/")[3]

Добавляем в файл паука в def parse_row(self, response, row) операторы присвоения новых полей. Паук теперь парсит csv файл в 6 полей, но это не окончательный вариант

пятница, 25 июля 2014 г.

Pipeline для того, чтобы отфильтровать первые две строчки после парсинга из источника nissan_2.csv

В штатном примере Dirbot есть фильтрующий pipeline. Оказалось, что его можно приспособить для фильтрации кириллицы. Не зря я собрал раньше все свои упражнения в пост Кодировка UTF-8 Или, как дружить с объектами Str и Unicode Pyton 2.x
Накануне читал два раздела документации Scrapy - Pipelines, Item Loaders... Здесь пример простейшего практикума.

среда, 23 июля 2014 г.

Парсим csv файл своим первым MailCsvSpider

И выясняем, что паук просто ищет текст между разделителями (запятая) в csv файлах и формирует из них именованные поля Item Fields. Но это еще не все, он пропускает пустые строчки...

Как сохранить response.body в файл прямо из спайдера Scrapy (filename = "spider_"+response.url.split("/")[-2])

Чтобы проект имел законченый вид, надо бы записать (куда-нибудь) результаты. Сделать это проще всего в текстовый (csv) файл. Нашел пример Creating a simple python crawler with scrapy и попробовал. Все получилось. Сама по себе идея об оработке файла в процессе парсинга пришла после того, как я вспомнил про CacheMiddleWare...

вторник, 22 июля 2014 г.

Пошаговое руководство по созданию проекта Scrapy CSV

Создаем первый проект для парсинга csv файлов. Записываем все действия. После того, как был прописан абсолютный путь (да еще) и к новому "правильному" локальному csv файлу, сообщения в консоли подтвердили правильное распарсивание строк. Этим здесь и ограничились...

вторник, 15 июля 2014 г.

Пример замены scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware

В предыдущем посте мы поняли, как задаются методы класса Settings. В этом мы откроем, что можно обращаться с объектом, как со списком settings['USER_AGENT']... Прочитаем, как меняются дефолтные настройки DEFAULT_REQUEST_HEADERS, DOWNLOADER_MIDDLEWARES_BASE, перейдем к middleware..., и в конце скопипастим код из статьи Using random user agent in Scrapy.

Продолжаем осваивать Scrapy shell - пытаемся понять и запомнить то, что выскакивает после .TAB в консоли iPython

Здесь мы учимся работать с консолью. Сначала на примере dirbot (scrapy shell "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/") смотрим на объекты request, response, settings... распечатываем объекты типа settings.overrides или spider.settings.overrides. Потом находим паку settings и распечатываем init.py в котором и задаются все методы класса Settings.