Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从网站抓取库存可用性数据_Sql_Ssis - Fatal编程技术网

Sql 从网站抓取库存可用性数据

Sql 从网站抓取库存可用性数据,sql,ssis,Sql,Ssis,我想从以下网站抓取某个产品的库存可用性 [{@type:“提供”、“可用性”:https://schema.org/InStock“,”价格“:”479.00“,”价格货币“:”欧元“,”网址“:”https://www.mantel.com/cube-aim-pro&spec[]=9470&spec[]=2756&spec[]=285“},{@type:“报价”、“可用性”:http://schema.org/OutOfStock“,”价格“:”479.00“,”价格货币“:”欧元“,”网址“

我想从以下网站抓取某个产品的库存可用性

[{@type:“提供”、“可用性”:https://schema.org/InStock“,”价格“:”479.00“,”价格货币“:”欧元“,”网址“:”https://www.mantel.com/cube-aim-pro&spec[]=9470&spec[]=2756&spec[]=285“},{@type:“报价”、“可用性”:http://schema.org/OutOfStock“,”价格“:”479.00“,”价格货币“:”欧元“,”网址“:"https://www.mantel.com/cube-aim-pro&spec[]=9470&spec[]=2768&spec[]=285“},{“@type”:“提供”、“可用性”:http://schema.org/OutOfStock“,”价格“:”479.00“,”价格货币“:”欧元“,”网址“:”https://www.mantel.com/cube-aim-pro&spec[]=9470&spec[]=2811&spec[]=285“},{“@type”:“报价”、“可用性”:http://schema.org/OutOfStock,“价格”:“479.00”价格货币“:”欧元“,”网址“:”https://www.mantel.com/cube-aim-pro&spec[]=9470&spec[]=2757&spec[]=285“}],“聚合”:{“@type”:“聚合”,“评级值”:“9.0”,“评级计数”:“6”,“最佳评级”:“10”}

我需要schema.org/Instock或schema.org/OutOfStock最终在产品有库存时收到通知,以便我可以购买它。 这对我个人来说是因为目前山地自行车的供应非常有限。 因此,我想建立一个快速的程序,以获得通知时,安装MTB大小的股票 如果我有一个脚本来获取此特定产品的数据,我可以使用sql server创建SSI,并在“outstock”字段为“instock”时设置电子邮件通知。
我熟悉SSIS和SQL server。有人能帮我从网站获取数据吗?

您可以直接在SSIS中使用json,但也可以使用SQL server

使用ssis在表中插入Json,然后使用Openjson解析它:

在这里,我将您的示例json插入临时表中,并使用tsql进行查询:

DECLARE @json NVARCHAR(MAX) =
N'
[{"@type":"Offer","availability":"https://schema.org/InStock","price":"479.00","priceCurrency":"EUR","url":"https://www.mantel.com/cube-aim-pro&spec[]=9470&spec[]=2756&spec[]=285"}
,{"@type":"Offer","availability":"http://schema.org/OutOfStock","price":"479.00","priceCurrency":"EUR","url":"https://www.mantel.com/cube-aim-pro&spec[]=9470&spec[]=2768&spec[]=285"}
,{"@type":"Offer","availability":"http://schema.org/OutOfStock","price":"479.00","priceCurrency":"EUR","url":"https://www.mantel.com/cube-aim-pro&spec[]=9470&spec[]=2811&spec[]=285"}
,{"@type":"Offer","availability":"http://schema.org/OutOfStock","price":"479.00","priceCurrency":"EUR","url":"https://www.mantel.com/cube-aim-pro&spec[]=9470&spec[]=2757&spec[]=285"}]
,"aggregateRating":{"@type":"AggregateRating","ratingValue":"9.0","ratingCount":"6","bestRating":"10"}}'


CREATE TABLE #tmp (
      id INT IDENTITY (1, 1) NOT NULL
    , json NVARCHAR(MAX) NOT NULL
)

INSERT INTO #tmp (json)
VALUES (@json)

SELECT [AdType]
     , [availability]
     , [price]
     , [priceCurrency]
     , [url]
FROM (
    SELECT TOP 1 json
    FROM #tmp
    ORDER BY id DESC
) a
    OUTER APPLY OPENJSON(a.json)
    WITH
    (
    AdType VARCHAR(100) '$."@type"'
    , availability NVARCHAR(256)
    , price DECIMAL(19, 2)
    , priceCurrency NVARCHAR(3)
    , url NVARCHAR(512)
    )

您的标记中有python。如果您使用python获取数据,您可以直接将json解析为python对象,而无需使用SSIS或SQL server。不过

Hi Søren,感谢您的分享。此脚本现在也是动态的吗?因为如果网站上的第三行更改为“Instock”,会发生什么“。然后查询是否也会返回此值?使用sql,我还可以添加日期+时间运行查询。因此,输出将是28-1-2021 13:45:OutOfStock,28-1-2021 15:00:OutOfStock,28-1-2021 17:00:Instock,事实上,我需要获得以下信息://{“@type”:“Offer”,“availability”:“,“//从以下URL:URL:”}