Концепция
Инструмент по скрепингу общего назначения с функцией анализа текста.
Следующие функции помогают пользователям начать разработку.
- Простые настройки
- Настраиваемость
- Функция анализа текста (тега/визуализация)
Нажмите здесь для исходного кода https://github.com/makotunes/easy-customizable-scraper
Пример приложения
- Коллекция статей кураторских медиа и автоматическое теги
- Рекомендационный двигатель
Этот алгоритм используется для функций моих лично разработанных продуктов. https://mockers.io/scanner
Элементная технология
- Интернет
- Автоматическое обнаружение языка
- Морфологический анализ
- Алгоритм тегации функций (оригинал)
- Технология визуализации 2D карты (оригинал)
Зависимости
- Докер
Установка
Это занимает около 1-2 часов.
docker build -t scanner .
или
./build.sh
Бежать
docker run --rm -it -v "$PWD":/usr/src/app \ --name scanner --force scanner \ -e 'ENTRY_URL=http://recipe.hacarus.com/' \ -e 'ALLOW_RULE=/recipe/' \ -e \ -e 'DOCUMENT_XPATH=//td/text()|//p/text()' \ -e 'PAGE_LIMIT=2000' \ -e 'EXCLUDE_REG=\d(年|月|日|時|分|秒|g|\u4eba|\u672c|cm|ml|g|\u5206\u679a\u5ea6)|hacarusinc|allrightsreserved' \ scanner:latest /usr/src/app/entrypoint.sh
или
./run.sh
Параметры
Установите переменную среды контейнера Docker.
Если у вас есть хотя бы entry_url, он автоматически сканирует страницу и вытащит текст. Если варианты не указаны, он оптимизирован для кураторских средств и может быть полностью автоматизирована, например, извлечение текста статей.
(Требуется) Лучший URL -адрес сайта для начала сканирования. Все страницы автоматически сканируются. | Intry_url |
Разрешить правило фильтра целевых URL. | Allow_Rule |
Отрицание правила фильтра целевого приоритета переоценки. | Deny_rule |
Укажите изображение, которое вы хотите получить на странице с XPath. | Image_xpath |
Xpath верхнего узла на странице, где должен быть извлечен текст. | Document_xpath |
Сканированное ограничение количества страниц. -1 означает неограниченный номер. | Page_limit |
Регулярное выражение правила слова не извлечено морфологическим анализом. | Exclude_reg |
Результат
РЕЗУЛЬТАТ/RES.JSON
Структура проекта
src/scraper.py | Основная логика скрещивания |
src/categorizer.py | Основной алгоритм пометить и визуализировать отрывки. |
src/tokenizer.py | Основной алгоритм для проведения морфологического анализа |
Настраивать
Custom/_formatter.py
Отредактируйте XPath для необходимых HTML -узлов, как ниже.
def formatter(sel): res = {} n_howtomake = int(len(sel.xpath().extract()) / 2) res["n_howtomake"] = n_howtomake return res
Custom/_finalizer.py
Редактировать пост-процесс, чтобы сгенерировать ожидаемый вывод, как ниже.
import pandas as pd def finalizer(res): pages = res["scatter"] pages = list(map(lambda x: x["user_meta"], pages)) df = pd.DataFrame(pages) corr_df = df.loc[:, ["time", "n_howtomake", "n_components"]].corr() res["analyzed"] = {} res["analyzed"]["correlation"] = {} res["analyzed"]["correlation"]["time-n_howtomake"] = corr_df.loc["time", "n_howtomake"] return res
Пример
Вот пример использования этого инструмента для очистки и анализа.
Давайте проанализируем Бесплатный сайт рецепта приготовления . * * Если вы не можете получить к нему доступ, попробуйте открыть его в секретном режиме. * *
Все эти результаты хранятся в каталоге «результат».
Визуализировать распределение времени приготовления, количества ингредиентов, количества рецептов
import matplotlib.pyplot as plt import pandas as pd def finalizer(res): pages = res["scatter"] pages = list(map(lambda x: x["user_meta"], pages)) df = pd.DataFrame(pages) fig = plt.figure() x = df["time"] y = df["n_howtomake"] plt.scatter(x, y) plt.savefig('./result/time-n_howtomake.png') fig = plt.figure() x = df["time"] y = df["n_components"] plt.scatter(x, y) plt.savefig('./result/time-n_components.png') fig = plt.figure() x = df["n_howtomake"] y = df["n_components"] plt.scatter(x, y) plt.savefig('./result/n_howtomake-n_components.png') return res
Результат
Время приготовления: как сделать
Время приготовления: количество ингредиентов
Как сделать: Количество ингредиентов
Изучите корреляцию между временем приготовления, количеством ингредиентов и количеством рецептов
import matplotlib.pyplot as plt import pandas as pd def finalizer(res): pages = res["scatter"] pages = list(map(lambda x: x["user_meta"], pages)) df = pd.DataFrame(pages) corr_df = df.loc[:, ["time", "n_howtomake", "n_components"]].corr() res["analyzed"] = {} res["analyzed"]["correlation"] = {} res["analyzed"]["correlation"]["time-n_howtomake"] = corr_df.loc["time", "n_howtomake"] res["analyzed"]["correlation"]["time-n_components"] = corr_df.loc["time", "n_components"] res["analyzed"]["correlation"]["n_howtomake-n_components"] = corr_df.loc["n_howtomake", "n_components"] fig = plt.figure() return res
Результат
Время приготовления: как сделать
0.30457219729662316
Время приготовления: количество ингредиентов
0.3949520467754227
Как сделать: Количество ингредиентов
0.6869899620517819
Выберите около трех ключевых слов, которые можно использовать для характеристики каждого Leshig
Result/Tagged.csv
なす | トマト | 大 葉 | なす と トマト 中華 和え (15 分) |
両面 | 照り焼き | 水気 | ぶり の 照り焼き (45 分) |
大 根 | こん にゃく | 竹輪 | おでん 風煮 (2 時間) |
ツナ | 大 根 | わかめ | 大根 と ツナ サラダ (15 分) |
片栗粉 | にんにく | れん こん | 鶏 の 照り焼き 丼 (20 分) |
れん こん | ごぼう | こん にゃく | 筑 前 煮 (60 分) |
白菜 | わかめ | しめじ | 白菜 と の 酢 の 物 (15 分) |
玉ねぎ | しめじ | ピーマン | 鮭 の ホイル 焼き (25 分) |
キャベツ | しめじ | ハム | キャベツ と ハム 粒マスタード 和え (15 分) |
えのき | わかめ | きゅうり | えのき と ワカメ 和え物 (15 分) |
里 芋 | 片栗粉 | 桜えび | 里芋 の おやき (30 分) |
里 芋 | 鶏肉 | 相性 | 鶏肉 と 里芋 煮物 (60 分) |
万願 寺 唐辛子 | かつ お 節 | 作り 方 | 焼き 万願寺 唐辛子 (10 分) |
玉ねぎ | 牛肉 | じゃがい も | 肉じゃ が (45 分) |
冷蔵庫 | 鰆 | ゆず | 鰆 の 幽庵 焼き (15 分 (漬け込む 時間 は 省く)) |
オクラ | しょ う が | オクラ | オクラ の 煮びたし (10 分 (冷やす 時間 は 除く))) |
春菊 | 油揚げ | 春菊 | 春菊 と 油揚げ 煮びたし (15 分) |
マヨネーズ | 塩コショウ | しい たけ | しいたけ の ツナマヨ 焼き (10 分) |
キャベツ | マヨネーズ | きゅうり | コールスロー (15 分) |
にんにく | じゃがい も | タコ | じゃがいもと タコ の 炒め (20 分) |
しょ う が | トマト | きゅうり | 棒棒鶏 (30 分) |
アボカド | ハム | チーズ | アボカド の チーズ 焼き (15 分) |
大 葉 | キャベツ | 大 葉 | キャベツ と 大葉 さっぱり 和え (10 分) |
レタス | きゅうり | サラダ | カニカマサラダ (10 分) |
ズッキーニ | もやし | 粗熱 | ズッキーニ と もやし ナムル (15 分) |
春雨 | きゅうり | ハム | 春雨 サラダ (15 分) |
大 根 | 白菜 | 油揚げ | 白菜 と 油揚げ みぞれ 煮 (30 分) |
れん こん | にんにく | 牛肉 | 牛肉 と こん の 甘辛 炒 め (30 分) |
しょ う が | しめじ | レタス | 豚丼 (30 分) |
ゆず皮 | 大 根 | 部分 | 紅白 な ます (30 分) |
里 芋 | にんにく | 香り | 里芋 の ガーリック 焼き (30 分) |
ブロッコリー | 和風 | みそ | ブロッコリー の ごまみ そ和え (10 分) |
ブロッコリー | 出汁 醤油 | 粗熱 | ブロッコリー の ゴマ 和え (15 分) |
ゆず | 甘酢 | 昆布 | かぶ の 甘酢 漬け (1 時間) |
さん ま | しょ う が | 圧力 | さんま の しょ が 煮 (30 分) |
大 根 | きゅうり | スパゲッティ | スパゲティー サラダ (20 分) |
切り干し 大 根 | 油揚げ | 短冊 | 切り干し 大根 の 煮物 (25 分) |
なす | オクラ | 出汁 醤油 | なす と オクラ 和え物 (10 分) |
厚揚げ | なす | 片栗粉 | なす と 厚揚げ おろし あん (30 分) |
ごぼう | 好み | 一味 | ごぼう の ごま マヨサラダ (15 分) |
水菜 | 長い も | わさび | 水菜 と も の わさび 和え (15 分) |
ピーマン | 雑魚 | 顆粒 和 風だ し | ピーマン の じゃこ め (15 分) |
なす | 丼 | ピーマン | なす と の ごまみ そ丼 (20 分) |
豆腐 | しょ う が | 白ネギ | ピリ辛 豆腐 ステーキ (30 分) |
白菜 | 大 葉 | ハム | 白菜 と の 青じ そ サラダ (20 分) |
鮭 | にんにく | ソース | 鮭 の シャリア ソース がけ (30 分) |
白菜 | きゅうり | サラダ | 白菜 の さっぱり サラダ (15 分) |
しょ う が | 鶏ミンチ | 片栗粉 | かぶと 肉団子 の 煮物 (30 分) |
ごぼう | かつ お 節 | 圧力 鍋 | ごぼう の 梅おかか 煮 (45 分) |
ほうれん 草 | 切り干し 大 根 | 熱 湯 | 切り干し 大根 と 草 の 和え物 (20 分 (水 に 戻す 時間 除く 除く))) |
かぼちゃ | 油揚げ | 揚げ | かぼちゃと 揚げ の 煮物 (20 分) |
さ つまい も | レモン 汁 | レモン | さ つまい もの 煮 (30 分) |
菜 の 花 | 練り から し | 長 さ | 菜 の 花 辛子 和え (15 分) |
こん にゃく | かぼちゃ | 熱 湯 | かぼちゃ と こん の 煮物 (30 分) |
豆腐 | 春菊 | 好み | ゆず入り 湯豆腐 (1 時間) |
厚揚げ | 大 根 | 彩り | 大根 と 厚揚げ 煮物 (60 分) |
小 松菜 | にんにく | しょ う が | 小 松菜 ぎょうざ (45 分) |
油揚げ | 水菜 | 食感 | 水菜 と 油揚げ 煮びたし (15 分) |
大 根 | 味 噌 | いりごま | ふろふき 大根 (30 分 以上) |
春菊 | 豆腐 | 白和え | 春菊 の 白和え (15 分) |
なす | 生姜 | ホイル | なす の ホイル 焼き (15 分) |
玉ねぎ | ニラ | えび | えび と の 中華 風 卵炒 め (30 分) |
ししゃも | 南蛮漬け | ピーマン | ししゃも の 南蛮漬け (30 分) |
豚肉 | 白菜 | 玉ねぎ | 八宝菜 (30 分) |
ブロッコリー | 食感 | わさび | ブロッコリー の わさ 和え (15 分) |
鶏肉 | 鶏も も 肉 | しい たけ | 鶏のすき 煮 (30 分) |
里 芋 | 梅干 し | かつ お 節 | 里芋 の 梅おかか 和え (35 分) |
ブロッコリー | 出汁 醤油 | 焼き 海苔 | ブロッコリー の 磯和え (15 分) |
鶏肉 | 鶏も も 肉 | 白ネギ | 焼き 鳥丼 (20 分) |
かつ お 節 | ほうれん 草 | 10 分 | ほうれん 草 の 浸し (10 分) |
片栗粉 | さん ま | 大 葉 | さんま の 梅し ロール (45 分) |
トマト | きゅうり | かつ お 節 | きゅうり と トマト 土佐酢和え (30 分) |
さば | 味 噌 | しょ う が | さば の 味 煮 (30 分) |
エリンギ | バター | エリンギ | エリンギ の バター め (15 分) |
さ つまい も | マヨネーズ | 塩コショウ | さ つまい クリーム チーズ の サラダ (20 分) |
キムチ | 納豆 | 長 ネギ | 薄揚げ の 納豆 め (15 分) |
味 噌 | 鮭 | ヨーグルト | 鮭 の 味噌 ヨーグルト漬け (15 分 (漬け込む 時間 は 除く)) |
ごぼう | れん こん | こん にゃく | 五目豆 (45 分) |
新生姜 | 水菜 | 肉 | 新生姜 と 水菜 肉 巻き (30 分) |
小 松菜 | ツナ | 水気 | 小 松菜 と の 和え物 (15 分) |
大 根 | 手羽 中 | 弱火 | 手羽中 と 大根 煮物 (45 分) |
表面 | 手羽 先 | にんにく | 手羽先 の 照り焼き (60 分) |
ほうれん 草 | 梅 | 梅干 し | ほうれん 草 の 梅和え (15 分) |
なめこ | 大 葉 | かつ お 節 | なめこおろし (15 分) |
1 時間 | 塩コショウ | タンド リーチキン | 簡単 タンド リーチキン (1 時間 以上) |
あさり | にんにく | みじん 切り | あさり の 酒蒸 し (15 分) |
玉ねぎ | ピーマン | 肉 | ピーマン の 肉詰 め (30 分) |
竹輪 | 青のり | 衣 | ちくわ の 磯辺揚げ (15 分) |
長い も | かつ お 節 | 梅干 し | 長い もの 梅和え (10 分) |
アボカド | 水菜 | 豆腐 | 水菜 と アボカド サラダ (15 分) |
鶏肉 | 鶏がら スープ の 素 | 一 口 | 酢鶏 (20 分) |
鯛 | 冷蔵庫 | 魚 | 鯛 の 西京 焼き (15 分 (漬け込む 時間 は 除く)) |
きゅうり | 塩昆布 | 乱切り | きゅうり の 塩昆 布和え (10 分) |
なす | しょ う が | 作り 方 | なす の 煮びたし (20 分) |
ごぼう | 肉 | にんにく | ごぼう と 人参 肉 巻き (30 分) |
イカ | 大 根 | 里 芋 | 大 根 里 芋 ・ イカ の 煮物 (40 分) |
豚肉 | にんにく | 片栗粉 | 回 鍋肉 (30 分) |
ほうれん 草 | 干し エビ | 干しえび | ほうれん 草 干しえび の ゴマ 和え (15 分) |
里 芋 | 片栗粉 | 鶏ミンチ | 里芋 の そぼろ 煮 (30 分) |
三 度 豆 | 湯 | 出汁 醤油 | 三 度 と 人参 の おかか 和え (10 分) |
チンゲン 菜 | しめじ | 豚肉 | 中華丼 (30 分) |
きゅうり | た こ | わかめ | きゅうり と この 酢 の 物 (20 分) |
片栗粉 | 鶏ミンチ | 新玉ねぎ | 新玉ねぎ の コンソメ 煮込み (45 分) |
れん こん | いりごま | 中火 | れんこんの きんぴら (15 分) |
玉ねぎ | ニラ | しめじ | 野菜 たっぷり 牛丼 (20 分) |
片栗粉 | にんにく | チンゲン 菜 | ホタテ と 菜 の クリーム 煮 (20 分) |
ごぼう | 豆腐 | ほうれん 草 | ほうれん 草 と の 白和え (60 分) |
さん ま | ごま | 大 葉 | さんま の 蒲焼き (30 分) |
ひじき | 油揚げ | 大豆 | ひじき の 炒め 煮 (60 分) |
かつ お 節 | オクラ | 納豆 | オクラ の 納豆 和え (10 分) |
縮緬 雑魚 | 貝割れ 大根 | 水菜 | じゃこの サラダ (10 分) |
里 芋 | ほうれん 草 | ベーコン | 里芋 の ホット サラダ (45 分) |
かぼちゃ | ヨーグルト | きゅうり | かぼちゃ の サラダ (15 分) |
豆腐 | しめじ | えのき | 豆腐 の き こ あんかけ (10 分) |
しょ う が | 春雨 | ニラ | 春巻き (60 分) |
れん こん | しょ う が | 鶏ミンチ | れん こん の さみ 焼き (30 分) |
高野 豆腐 | 竹串 | 水気 | 高野 豆腐 の 煮 (30 分) |
春雨 | 白菜 | にんにく | 豚ミンチ と 白菜 炒め 物 (15 分) |
いわし | しょ う が | 長 ネギ | いわし の さっぱり 煮 (45 分) |
れん こん | ОЛИВКОВОЕ МАСЛО | カレー 粉 | れんこん の カレー め (15 分) |
ささみ | もやし | きゅうり | ささみ の 中華 サラダ (25 分) |
豚肉 | 茄子 | 豆板 醤 | 茄子 と の ピリ辛味 噌炒 め (30 分) |
ささみ | にんにく | しょ う が | ささみ の から 揚げ (30 分) |
Призовать идеи
Что вы хотите делать с этим инструментом? Если есть необходимость, это может быть решено в будущем обновлении. Мы с нетерпением ждем ваших комментариев.
Оригинал: “https://dev.to/makotunes/starter-kit-no-2-exposing-general-purpose-web-scraping-tool-with-text-analysis-function-automatic-tagging-visualization-5d1”