【发布时间】:2021-08-10 19:54:03
【问题描述】:
我在 Microsoft Azure 中有一个 SQL 数据库和一个自动化帐户。每天我都会使用一个抓取机器人来存储两串数据。为此,我使用了一个名为 scraping-bot.io 的网站。获取字符串后,我在 SSMS 中运行 SQL 查询以手动将它们存储在表中。
我的目标是使用带有我的自动化帐户的运行手册来抓取网站,然后运行 SQL 查询以将字符串存储在表中。
我可以在我的自动化帐户中使用 Python Runbook 进行抓取:
import requests
import json
url = 'https://www.scraping-bot.io/rawHtmlPage.html'
username = 'xxxx'
apiKey = 'xxxxxxxxxxxxxxxxxxxx'
apiUrl = "https://www.banpais.hn/barradolar.php"
payload = json.dumps({"url": url})
headers = {'Content-Type': "application/json"}
response = requests.request("POST", apiUrl, data=payload, auth=(username, apiKey), headers=headers)
COMPRA = response.text.partition('var d_compra = ')[2][0:(response.text.partition('var d_compra = ')[2].find(';'))]
VENTA = response.text.partition('var d_venta = ')[2][0:(response.text.partition('var d_compra = ')[2].find(';'))]
COMPRA 和 VENTA 是我正在抓取的字符串。
我对此任务没有任何问题,但是,我无法理解如何运行 SQL 查询以从那里将数据存储在表中。
我试过添加这个:
import pyodbc
server = 'tcp:xxxxxxx.database.windows.net'
database = 'xxxxxxxxxxx'
table = '[dbo].[xxxxxxx]'
username = 'xxxxxxxxxxx'
password = 'xxxxxxxxxxx'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server}; SERVER=' + server + '; DATABASE=' + database + '; UID=' + username + '; PWD=' + password)
cursor = cnxn.cursor()
cursor.execute("QUERY HERE")
但是,我收到一个错误:
Traceback (most recent call last): File "C:\Temp\fdejt30f.zha\eae7fa25-4541-40d1-bc95-83642c705b27", line 5, in <module> import pyodbcModuleNotFoundError: No module named 'pyodbc'
玩了一会儿后,我能够 pip install pyodbc,但遇到另一个错误,告诉我没有安装“用于 SQL Server 的 ODBC 驱动程序 17”。我被难住了。
有没有办法在 Azure 自动化帐户中使用 python Runbook 运行 SQL 查询?
【问题讨论】:
-
嗨!谢谢你帮助我。无法尝试,但我相信它会有所帮助。一旦我开始尝试并找到解决方案,我会让任何人都在寻找答案。
标签: python sql-server pyodbc azure-automation azure-runbook