将 Scrapfly Scraper 集成到 Azure Synapse Analytics 项目中

问题描述 投票:0回答:1

我目前正在开发一个名为“Azure-Social-Media-Analytics-Solution-Accelerator”的项目。该项目利用两个主要来源的数据:新闻网站和 Twitter。数据由 Jupyter 笔记本收集和处理,这些笔记本由 Azure Synapse Analytics 通过管道运行。

目前该项目使用Twitter API从Twitter获取数据。不过,我希望用我开发的 Scrapfly scraper 替换 Twitter API。我的抓取工具使用 Scrapfly API 从 Twitter 抓取数据,并在两个 Python 文件中定义。

我尝试更新项目中的 Ingest Process 文件笔记本,以使用 Scrapfly scraper 而不是 Twitter API。但是,我不确定继续的最佳方法。

有人有将自定义抓取工具集成到 Azure Synapse Analytics 项目中的经验吗?任何帮助或建议将不胜感激。

提前感谢您的帮助!

azure web-scraping azure-synapse twitterapi-python azure-synapse-analytics
1个回答
0
投票
  1. 您可以使用的另一个选项是 在 Azure Function App 中调用 API 作为 HTTP 触发器和 http 代码,然后在 Synapse 管道中使用它:-

Azure Functions Http Trigger:-

import logging
import azure.functions as func
from scrapfly import ScrapeConfig, ScrapflyClient

def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

    
    scrapfly = ScrapflyClient(key='scp-live-390c9xxxxxx54ce36')
    api_response = scrapfly.scrape(scrape_config=ScrapeConfig(url='https://httpbin.dev/anything'))
    logging.info(f'Scraping Result: {api_response.success}')
    scrape_result = api_response.scrape_result
    content = scrape_result['content']
    context = api_response.context
    status_code = api_response.status_code
    upstream_status_code = api_response.upstream_status_code

    return func.HttpResponse(
        f"Scrape Result: {api_response.success}. Content: {content}. Context: {context}. Status Code: {status_code}. Upstream Status Code: {upstream_status_code}",
        status_code=200
    )

enter image description here

  1. 您还可以创建一个逻辑应用程序工作流程来调用 Scrapfly API,如下所示,然后将逻辑应用程序 URL 调用到 Azure synapse Web 活动中:-

Scrapfly API:-

{
    "url": "https://api.scrapfly.io/scrape",
    "method": "GET",
    "headers": {
        "Content-Type": "application/json"
    },
    "body": {
        "url": "https://twitter.com",
        "key": "xxxxxxxxx5fc8fa67dso",
        "proxy_pool": "public_datacenter_pool",
        "headers": {
            "content-type": "application/json",
            "Cookie": "test=1;auth=1"
        },
        "country": "us",
        "lang": "en",
        "os": "win11",
        "timeout": 30000
    }
}

enter image description here

然后通过 Azure synapse Web 活动调用此逻辑应用程序,类似于此MS 文档用于从 Web 活动中的逻辑应用程序调用电子邮件

© www.soinside.com 2019 - 2024. All rights reserved.