Tokopedia - это место, где продавцы могут продавать свои товары. Товар должен быть размещен на витрине, чтобы покупателям было легче найти товар продавца.
Для получения данных о витринах магазинов в Tokopedia существует несколько Скрытых API, которые мы можем использовать, а именно ShopShowcase и ShopInfoCore.
ShopShowcase - это API, используемый для получения данных о витринах на основе идентификатора магазина.
А ShopInfoCore - это API, используемый для получения данных об идентификаторе магазина на основе обработчика магазина (название).
Пожалуйста, обратитесь к следующему примеру сценария:
import pandas as pd import requests def ShopInfoCore(domain: str): url = "https://gql.tokopedia.com/graphql/ShopInfoCore" body = [ { "operationName": "ShopInfoCore", "variables": { "id": 0, "domain": domain, }, "query": 'query ShopInfoCore($id: Int!, $domain: String) {\n shopInfoByID(input: {shopIDs: [$id], fields: ["active_product", "allow_manage_all", "assets", "core", "closed_info", "create_info", "favorite", "location", "status", "is_open", "other-goldos", "shipment", "shopstats", "shop-snippet", "other-shiploc", "shopHomeType", "branch-link", "goapotik"], domain: $domain, source: "shoppage"}) {\n result {\n shopCore {\n description\n domain\n shopID\n name\n tagLine\n defaultSort\n __typename\n }\n createInfo {\n openSince\n __typename\n }\n favoriteData {\n totalFavorite\n alreadyFavorited\n __typename\n }\n activeProduct\n shopAssets {\n avatar\n cover\n __typename\n }\n location\n isAllowManage\n branchLinkDomain\n isOpen\n shipmentInfo {\n isAvailable\n image\n name\n product {\n isAvailable\n productName\n uiHidden\n __typename\n }\n __typename\n }\n shippingLoc {\n districtName\n cityName\n __typename\n }\n shopStats {\n productSold\n totalTxSuccess\n totalShowcase\n __typename\n }\n statusInfo {\n shopStatus\n statusMessage\n statusTitle\n tickerType\n __typename\n }\n closedInfo {\n closedNote\n until\n reason\n detail {\n status\n __typename\n }\n __typename\n }\n bbInfo {\n bbName\n bbDesc\n bbNameEN\n bbDescEN\n __typename\n }\n goldOS {\n isGold\n isGoldBadge\n isOfficial\n badge\n shopTier\n __typename\n }\n shopSnippetURL\n customSEO {\n title\n description\n bottomContent\n __typename\n }\n isQA\n isGoApotik\n epharmacyInfo {\n siaNumber\n sipaNumber\n apj\n __typename\n }\n __typename\n }\n error {\n message\n __typename\n }\n __typename\n }\n}\n', } ] return requests.post(url=url, json=body).json()[0]["data"]["shopInfoByID"]["result"][0]["shopCore"]["shopID"] def ShopShowcase(sid: int): url = "https://gql.tokopedia.com/graphql/ShopShowcase" body = [ { "operationName": "ShopShowcase", "variables": { "sid": f"{sid}", "isManageShop": False, "hideEmpty": True, }, "query": "query ShopShowcase($sid: String!, $isManageShop: Boolean, $hideEmpty: Boolean, $hideGroup: Boolean) {\n shopShowcasesByShopID(shopId: $sid, hideNoCount: $hideEmpty, hideShowcaseGroup: $hideGroup, isOwner: $isManageShop) {\n result {\n id\n title: name\n count\n type\n highlighted\n alias\n link: uri\n useAce\n badge\n __typename\n }\n error {\n message\n __typename\n }\n __typename\n }\n}\n", } ] return requests.post(url=url, json=body).json()[0]["data"]["shopShowcasesByShopID"]["result"] if __name__ == "__main__": shop_name = "agreshpauthorized" # nama (handler) toko https://www.tokopedia.com/agreshpauthorized shop_id = ShopInfoCore(shop_name) # id toko df = pd.DataFrame(ShopShowcase(shop_id)) # etalase toko df.to_csv("result.csv")
Результат работы приведенного выше примера скрипта в виде данных витрин магазинов, принадлежащих AGRES - HP Authorised , магазинов, продающих ноутбуки и так далее. Все вышеперечисленные API используют метод POST с телом запроса, которое мы можем изменить.
Затем мы отобразим визуализацию данных выше с помощью Matplotlib . Пожалуйста, обратитесь к следующему примеру сценария:
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv("result.csv") df[["title", "count"]].iloc[3:].plot(x = "title", kind = "barh", xlabel = "Banyak Produk") plt.show()
И результат:
Судя по изображению выше, в авторизованном магазине AGRES - HP продается много товаров в категории 'Потребительские ноутбуки', за которой следуют товары в категории 'Ноутбуки премиум-класса'.
На этом у меня все, спасибо.
Хайкал Роуи
21.03.2023 12:23
Веб-разработка - это захватывающая и постоянно меняющаяся область, которая постоянно развивается благодаря новым технологиям и тенденциям. Одним из самых популярных фреймворков для веб-разработки сегодня является React.js. Если вы начинающий веб-разработчик и хотите узнать больше о React.js, это...
21.03.2023 07:56
React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые делают их подходящими для различных проектов веб-разработки.
20.03.2023 14:01
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а также новые инструменты веб-скраппинга с открытым исходным кодом для их обхода.
20.03.2023 12:24
Чтобы запустить этот код и рассчитать CGPA, необходимо сохранить код как HTML-файл, а затем открыть его в веб-браузере. Для этого выполните следующие действия:
20.03.2023 11:15
О тренинге HTML JavaScript :HTML (язык гипертекстовой разметки) и CSS (каскадные таблицы стилей) - две основные технологии для создания веб-страниц. HTML обеспечивает структуру страницы CSS (визуальное и звуковое) оформление для различных устройств. Наряду с графикой и сценариями HTML и CSS являются...
20.03.2023 08:46
Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?