我目前正在开发一个名为“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 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
)
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
}
}
然后通过 Azure synapse Web 活动调用此逻辑应用程序,类似于此MS 文档用于从 Web 活动中的逻辑应用程序调用电子邮件