使用 Ebay API GetSellerList 抓取大图

Grabbing A Large Image With Ebay API GetSellerList

我正在尝试为 GetSellerList 请求的每件商品获取最高质量的图像 returns。可以通过单击产品页面上的图像手动查看 HQ 图像(所以我知道它们存在)。

不幸的是,它只有 returns 中等大小的图像。我在谷歌上搜索了又搜索,却发现很多关于 SelectorOutput 的提及,它只能在 Finding API 中使用,而这与我正在尝试做的完全无关。

这是我的 xml 输入(请注意,我的身份验证由我正在使用的 js 库处理):

var xml = '<?xml version="1.0" encoding="UTF-8"?>' +
       '<GetSellerListRequest xmlns="urn:ebay:apis:eBLBaseComponents">' +
          '<RequesterCredentials>' +
            '<eBayAuthToken> <!-- my ebayAuthToken -->' +
          '</RequesterCredentials>' +
          '<UserID>samurai-gardens</UserID>' +
          '<StartTimeFrom>2016-01-01T23:35:27.000Z</StartTimeFrom>' +
          '<StartTimeTo>2016-02-01T23:35:27.000Z</StartTimeTo>' +
          '<DetailLevel>ItemReturnDescription</DetailLevel>' +
          '<Pagination ComplexType="PaginationType">' +
           '<EntriesPerPage>10</EntriesPerPage>' +
        '<PageNumber>1</PageNumber>' +
        '</Pagination>' +
        '</GetSellerListRequest>"';

我得到了正确的输出,我只是不知道如何用它来拉大图像。感谢 ebay 的超级令人沮丧 api!

只是为了澄清 post 对这个问题的评论:

要获得与产品列表关联的高分辨率图像,请执行以下操作..

使用如下格式的 GetSellerRequest 从商品详情中获取图片 URL:

var xml = '<?xml version="1.0" encoding="UTF-8"?>' +
       '<GetSellerListRequest xmlns="urn:ebay:apis:eBLBaseComponents">' +
          '<RequesterCredentials>' +
            '<eBayAuthToken> <!-- my ebayAuthToken -->' +
          '</RequesterCredentials>' +
          '<UserID>samurai-gardens</UserID>' +
          '<StartTimeFrom>2016-01-01T23:35:27.000Z</StartTimeFrom>' +
          '<StartTimeTo>2016-02-01T23:35:27.000Z</StartTimeTo>' +
          '<DetailLevel>ItemReturnDescription</DetailLevel>' +
          '<Pagination ComplexType="PaginationType">' +
           '<EntriesPerPage>10</EntriesPerPage>' +
        '<PageNumber>1</PageNumber>' +
        '</Pagination>' +
        '</GetSellerListRequest>"';

这应该会产生一个 URL,如下所示:

i.ebayimg.com/00/s/ODAwWDYyOQ==/z/3eEAAOSwSdZWdJRL/$_1.JPG?set_id=880000500F

一旦得到这个URL,需要修改它指向高分辨率图片选项。通过反复试验,这似乎是 .JPG 图像 3 或 57(可能还有其他)。每个图像都有不同的对齐方式,这是多个 'high resolution' 选项的原因。使用标准字符串操作技术修改返回的 URL 以获得以下内容:

i.ebayimg.com/00/s/ODAwWDYyOQ==/z/3eEAAOSwSdZWdJRL/$_3.JPG

这可以通过以下方式获得(在 c# 中)。下面的片段没有经过测试。确保子字符串中没有一个错误。有很多方法可以做到这一点,这恰好是我想到的..

string url = "i.ebayimg.com/00/s/ODAwWDYyOQ==/z/3eEAAOSwSdZWdJRL/$_1.JPG?set_id=880000500F";
int index = url.LastIndexOf(Convert.ToChar(@"/");
url = url.Substring(0,index+1);
url = url + @"/$_3.JPG";

如果您使用的是 c#(我知道原来的 post 用于 javascript),您可以使用以下线程中的信息从 URL 获取图像流: URL to Stream

这是一个 post,用于使用 Javascript 显示来自 URL 的图像:URL To Display Javascript