def test_title_of_wizard_image_on_page2(self): parser = GoogleParser() ideal = IdealParser("test/google/2/") markup = parser.extract_markup("test/google/2/2.html") self.assertEqual( ideal.get_substitution(markup, 5).title, "Картинки по запросу карандаш")
def test_media_links_on_page2(self): parser = GoogleParser() ideal = IdealParser("test/google/2/") markup = parser.extract_markup("test/google/2/2.html") media_links = ideal.get_substitution(markup, 5).media_links self.assertEqual( media_links[0], "http://www.lesyadraw.ru/raznye/predmety/kak-narisovat-karandash-na-bumage-poetapno.html" ) self.assertEqual(media_links[1], "http://i-fakt.ru/interesnye-fakty-o-karandashe/") self.assertEqual( media_links[2], "https://wordassociations.net/ru/%D0%B0%D1%81%D1%81%D0%BE%D1%86%D0%B8%D0%B0%D1%86%D0%B8%D0%B8-%D0%BA-%D1%81%D0%BB%D0%BE%D0%B2%D1%83/%D0%9A%D0%B0%D1%80%D0%B0%D0%BD%D0%B4%D0%B0%D1%88" ) self.assertEqual(media_links[3], "http://getpen.ru/staedtler-noris-pencil-2b/i/915") self.assertEqual( media_links[4], "https://www.etudesite.ru/catalog/lastiki_karandashi_quot_perfection_quot/" ) self.assertEqual( media_links[5], "https://www.popmech.ru/history/12293-kto-i-kogda-izobrel-karandash/" )
def get_max_distance(algorithm, golden_set): path = "../golden/" + golden_set + "/" N = 50 part = 0.5 ideal_parser = IdealParser(path) learn_nums = range(int(N * part)) test_nums = range(int(N * part), N) markup_list = list() for i in learn_nums: markup_list.append( ideal_parser.extract_markup(str(i) + "_markup.json")) algorithm.directory = path algorithm.learn(markup_list) mx_dist = 0 mx_ind = 0 for i in test_nums: with open(path + str(i) + ".html", "r") as file: string = file.read() parser_result = algorithm.parse(string) ideal_result = ideal_parser.parse(string) dist = metric.distance(parser_result, ideal_result) if dist > mx_dist: mx_dist, mx_ind = dist, i return mx_dist, mx_ind
def test_page_url_of_wizard_image_on_page1(self): parser = GoogleParser() ideal = IdealParser("test/google/2/") markup = parser.extract_markup("test/google/2/1.html") self.assertEqual( ideal.get_substitution(markup, 3).page_url, "https://www.google.ru/search?q=%D1%8F%D0%B4&newwindow=1&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwj62dOj8tvWAhWmFJoKHVGvDzoQsAQIQw" )
def test_page_url_of_wizard_image_on_page1(self): parser = YandexParser() ideal = IdealParser("test/yandex/") markup = parser.extract_markup("test/yandex/1.html") self.assertEqual( ideal.get_substitution(markup, 7).page_url, "https://yandex.ru/images/search?text=%D1%8F%D0%B4&stype=image&lr=2&noreask=1&parent-reqid=1507840705773924-1204282718026678870245913-vla1-2156&source=wiz" )
def get_markup_list(self, path, part=0.5): N = 50 markup_list = list() ideal_parser = IdealParser(path) for i in range(int(N * part)): markup_list.append( ideal_parser.extract_markup(str(i) + "_markup.json")) return markup_list
def test_page_url_of_wizard_image_on_page2(self): parser = GoogleParser() ideal = IdealParser("test/google/2/") markup = parser.extract_markup("test/google/2/2.html") self.assertEqual( ideal.get_substitution(markup, 5).page_url, "https://www.google.ru/search?q=%D0%BA%D0%B0%D1%80%D0%B0%D0%BD%D0%B4%D0%B0%D1%88&newwindow=1&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwic0a6D9tvWAhWJDpoKHUJRDREQsAQIUg" )
def test_media_links_on_page1(self): parser = GoogleParser() ideal = IdealParser("test/google/2/") markup = parser.extract_markup("test/google/2/1.html") media_links = ideal.get_substitution(markup, 3).media_links self.assertEqual(media_links[0], "http://www.i-sonnik.ru/yad/") self.assertEqual(media_links[1], "http://lfly.ru/sonnik-yad-k-chemu-snitsya-yad.html") self.assertEqual(media_links[2], "http://ohrana.ru/articles/37425/") self.assertEqual(media_links[3], "http://himsnab-spb.ru/article/pi/toxin/") self.assertEqual(media_links[4], "http://bezsna.net/tolkovanie_snov/4832-yad.html")
def test_fields_of_last_result_search_on_page1(self): parser = GoogleParser() ideal = IdealParser("test/google/2/") markup = parser.extract_markup("test/google/2/1.html") search_result = ideal.get_substitution(markup, 9) self.assertEqual(search_result.type, "SEARCH_RESULT") self.assertEqual(search_result.alignment, "LEFT") self.assertEqual(search_result.page_url, "https://vk.com/jaxta") self.assertEqual(search_result.title, "ЯД | ВКонтакте") self.assertEqual( search_result.snippet, "6 дней назад - Отбираем туда 3% самых популярных и обсуждаемых по Вашему мнению постов с ЯД, FORMATICA и ShockBlast и выкладываем ночью,\xa0..." ) self.assertEqual(search_result.view_url, "https://vk.com/jaxta")
def test_media_links_on_page1(self): parser = YandexParser() ideal = IdealParser("test/yandex/") markup = parser.extract_markup("test/yandex/1.html") media_links = ideal.get_substitution(markup, 7).media_links self.assertEqual( media_links[0], "im0-tub-ru.yandex.net/i?id=353e0e40d1d5ddf2f7a6be4fc3834d53&n=22") self.assertEqual( media_links[1], "im0-tub-ru.yandex.net/i?id=a64b49cb5028dde1632048248050d956&n=22") self.assertEqual( media_links[2], "im0-tub-ru.yandex.net/i?id=52a9ed57daafb3f8bcf99d2784695e78&n=22")
def test_fields_of_first_result_search_on_page1(self): parser = YandexParser() ideal = IdealParser("test/yandex/") markup = parser.extract_markup("test/yandex/1.html") search_result = ideal.get_substitution(markup, 0) self.assertEqual(search_result.type, "SEARCH_RESULT") self.assertEqual(search_result.alignment, "LEFT") self.assertEqual(search_result.page_url, "https://money.yandex.ru/") self.assertEqual(search_result.title, "Яндекс.Деньги — сервис онлайн-платежей") self.assertEqual( search_result.snippet, "Оплата товаров и услуг через интернет, перевод денег на счета или банковские карты. Возможность оформить виртуальную или пластиковую банковскую карту." ) self.assertEqual(search_result.view_url, "https://money.yandex.ru/")
def test_fields_of_first_result_search_on_page2(self): parser = GoogleParser() ideal = IdealParser("test/google/2/") markup = parser.extract_markup("test/google/2/2.html") search_result = ideal.get_substitution(markup, 0) self.assertEqual(search_result.type, "SEARCH_RESULT") self.assertEqual(search_result.alignment, "LEFT") self.assertEqual(search_result.page_url, "http://karandash-production.ru/") self.assertEqual(search_result.title, "Карандаш") self.assertEqual( search_result.snippet, "02.12.2016. Новая песня Карандаш и Lenin - Жечь! 31.10.2016. Бекстейдж клипа \"Отражение\". 05.02.2016. Итоги 2015г.- Карандаш для RHYME Magazine." ) self.assertEqual(search_result.view_url, "karandash-production.ru/")
def test_fields_of_last_result_search_on_page1(self): parser = YandexParser() ideal = IdealParser("test/yandex/") markup = parser.extract_markup("test/yandex/1.html") search_result = ideal.get_substitution(markup, 10) self.assertEqual(search_result.type, "SEARCH_RESULT") self.assertEqual(search_result.alignment, "LEFT") self.assertEqual(search_result.page_url, "http://www.habit.ru/18/252.html") self.assertEqual(search_result.title, "Таблица ядов · Химия") self.assertEqual( search_result.snippet, "Таблица ядов. Какие мысли возникают у Вас при слове «яд»?\xa0... Итак, давайте познакомимся с ядами поближе." ) self.assertEqual(search_result.view_url, "http://www.habit.ru/18/252.html")
def test_fields_of_result_search_with_video_on_page2(self): parser = GoogleParser() ideal = IdealParser("test/google/2/") markup = parser.extract_markup("test/google/2/2.html") search_result = ideal.get_substitution(markup, 9) self.assertEqual(search_result.type, "SEARCH_RESULT") self.assertEqual(search_result.alignment, "LEFT") self.assertEqual(search_result.page_url, "https://www.youtube.com/watch?v=AUUBSKXLKtU") self.assertEqual(search_result.title, "Карандаш - Двор - YouTube") self.assertEqual( search_result.snippet, "Большой концерт КАРАНДАША 19 марта! Билеты тут! http://www.concert.ru/Details.aspx?ActionID=61100 Остальные города СЛЕДИ ЗА\xa0..." ) self.assertEqual(search_result.view_url, "https://www.youtube.com/watch?v=AUUBSKXLKtU")
def test_fields_of_first_result_search_on_page1(self): parser = GoogleParser() ideal = IdealParser("test/google/2/") markup = parser.extract_markup("test/google/2/1.html") search_result = ideal.get_substitution(markup, 0) self.assertEqual(search_result.type, "SEARCH_RESULT") self.assertEqual(search_result.alignment, "LEFT") self.assertEqual(search_result.page_url, "https://ru.wikipedia.org/wiki/%D0%AF%D0%B4") self.assertEqual(search_result.title, "Яд — Википедия") self.assertEqual( search_result.snippet, "Яд, отрава — вещество, приводящее в определенных дозах, даже небольших относительно массы тела, к нарушению жизнедеятельности организма:\xa0..." ) self.assertEqual(search_result.view_url, "https://ru.wikipedia.org/wiki/Яд")
def test_fields_of_first_result_search_on_page2(self): parser = YandexParser() ideal = IdealParser("test/yandex/") markup = parser.extract_markup("test/yandex/2.html") search_result = ideal.get_substitution(markup, 0) self.assertEqual(search_result.type, "SEARCH_RESULT") self.assertEqual(search_result.alignment, "LEFT") self.assertEqual( search_result.page_url, "https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%80%D0%B0%D0%BD%D0%B4%D0%B0%D1%88" ) self.assertEqual(search_result.title, "Карандаш — Википедия") self.assertEqual( search_result.snippet, "Каранда́ш — инструмент в виде стержня, изготавливаемого из пишущего материала (угля, графита, сухих красок и тому подобного), применяемый для письма..." ) self.assertEqual( search_result.view_url, "https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%80%D0%B0%D0%BD%D0%B4%D0%B0%D1%88" )
def test_fields_of_last_result_search_on_page2(self): parser = YandexParser() ideal = IdealParser("test/yandex/") markup = parser.extract_markup("test/yandex/2.html") search_result = ideal.get_substitution(markup, 9) self.assertEqual(search_result.type, "SEARCH_RESULT") self.assertEqual(search_result.alignment, "LEFT") self.assertEqual( search_result.page_url, "https://www.mekka-spb.ru/catalog/karandashi-chernografitnyje/") self.assertEqual( search_result.title, "Карандаши чернографитные - купить в интернет-магазине...") self.assertEqual( search_result.snippet, "Купить карандаши чернографитные предлагаем на сайте Канцелярская мекка.\xa0... 7Карандаши чернографитные в наборах." ) self.assertEqual( search_result.view_url, "https://www.mekka-spb.ru/catalog/karandashi-chernografitnyje/")
def test_fields_of_result_search_with_video_on_page1(self): parser = GoogleParser() ideal = IdealParser("test/google/2/") markup = parser.extract_markup("test/google/2/1.html") search_result = ideal.get_substitution(markup, 7) self.assertEqual(search_result.type, "SEARCH_RESULT") self.assertEqual(search_result.alignment, "LEFT") self.assertEqual( search_result.page_url, "https://russia.tv/video/show/brand_id/62142/episode_id/1546175/video_id/1677534/" ) self.assertEqual( search_result.title, "Андрей Малахов. Прямой эфир / Яд для банкира: отравить жизнь ...") self.assertEqual( search_result.snippet, "Ее обвиняют в том, что она подсыпала яд - таллий - в картофельное пюре, которое приготовила для любимого мужа. Кто истинный\xa0..." ) self.assertEqual( search_result.view_url, "https://russia.tv/video/show/brand_id/62142/...id/.../1677534/")
def cv(self, algorithm, path, part=0.5): N = 50 ideal_parser = IdealParser(path) learn_nums = range(int(N * part)) test_nums = range(int(N * part), N) markup_list = list() for i in learn_nums: markup_list.append(ideal_parser.extract_markup(str(i) + "_markup.json")) algorithm.directory = path algorithm.learn(markup_list) dist = list() for i in test_nums: with open(path + str(i) + ".html", "r") as file: string = file.read() parser_result = algorithm.parse(string) ideal_result = ideal_parser.parse(string) dist.append(self.metric.distance(parser_result, ideal_result)) return self.aggregator.aggregate(dist)
def get_expected(self, golden_set, page): ideal_parser = IdealParser("./golden/" + golden_set) with open("./golden/" + golden_set + "/" + page, "r") as file: parser_result = ideal_parser.parse(file.read()) return parser_result
def test_title_of_wizard_image_on_page1(self): parser = YandexParser() ideal = IdealParser("test/yandex/") markup = parser.extract_markup("test/yandex/1.html") self.assertEqual( ideal.get_substitution(markup, 7).title, "яд — смотрите картинки")