Spaces:
Paused
Paused
import gradio as gr | |
import httpx | |
# Function to simulate media data crawling | |
async def crawl_media(platform, keyword, api_key): | |
if not api_key: | |
return "Error: API key is required. Please provide a valid API key." | |
try: | |
# Simulate a media crawling process | |
response = await httpx.get(f'https://api.example.com/crawl?platform={platform}&keyword={keyword}', headers={'Authorization': f'Bearer {api_key}'}) | |
if response.status_code == 200: | |
return response.json() | |
else: | |
return f"Error: Unable to crawl data. Status code: {response.status_code}" | |
except Exception as e: | |
return f"Error: {str(e)}" | |
# Gradio interface | |
with gr.Blocks() as demo: | |
gr.Markdown("# Media Crawler\nA powerful multi-platform media data collection tool.\n\n## Instructions\n1. Enter the platform you want to crawl (e.g., '小红书', '抖音').\n2. Provide a keyword for the search.\n3. Enter your API key to authenticate the request.\n\n### Example\n- Platform: '小红书'\n- Keyword: '旅行'\n").style(height=200) | |
platform = gr.Textbox(label="Platform", placeholder="Enter platform name") | |
keyword = gr.Textbox(label="Keyword", placeholder="Enter search keyword") | |
api_key = gr.Textbox(label="API Key", placeholder="Enter your API key") | |
output = gr.Textbox(label="Output") | |
submit_btn = gr.Button("Crawl Data") | |
submit_btn.click(crawl_media, inputs=[platform, keyword, api_key], outputs=output) | |
# Launch the app | |
if __name__ == "__main__": | |
demo.launch() |