使用 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
我正在尝试为 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