Spaces:
Sleeping
Sleeping
| import requests | |
| import pandas as pd | |
| import gradio as gr | |
| headers = { | |
| "User-Agent": "Mozilla/5.0", | |
| "Accept": "application/json" | |
| } | |
| def scrape_1mg(url): | |
| try: | |
| # Extract category slug from URL | |
| if "categories" not in url: | |
| return "Please enter a valid 1mg category URL." | |
| slug = url.split("/")[-1] | |
| api_url = f"https://www.1mg.com/api/v1/categories/{slug}/products?page=1" | |
| response = requests.get(api_url, headers=headers) | |
| if response.status_code != 200: | |
| return "API request failed." | |
| data = response.json() | |
| products = data.get("data", []) | |
| if not products: | |
| return "No products found." | |
| rows = [] | |
| for product in products: | |
| rows.append({ | |
| "Name": product.get("name"), | |
| "Price": product.get("price"), | |
| "Rating": product.get("rating"), | |
| "Discount": product.get("discount_percent") | |
| }) | |
| df = pd.DataFrame(rows) | |
| df.to_csv("products.csv", index=False) | |
| return df | |
| except Exception as e: | |
| return str(e) | |
| iface = gr.Interface( | |
| fn=scrape_1mg, | |
| inputs=gr.Textbox(label="Enter 1mg Category URL"), | |
| outputs="dataframe", | |
| title="1mg Category Scraper (JSON API Version)" | |
| ) | |
| iface.launch() |