使用Ebay API GetSellerList抓取大图像

时间:2016-03-25 23:46:56

标签: javascript xml node.js ebay-api

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

不幸的是,它只返回中等大小的图像。我用google搜索和谷歌搜索,只是发现了很多SelectorOutput的提及,它只能在Finding API中使用,而且与我尝试做的完全无关。

这是我的xml输入(注意我的auth是由我使用的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!

1 个答案:

答案 0 :(得分:1)

只是为了澄清在这个问题上发表的评论:

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

使用下面格式化的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(可能还有其他)。每个图像都有不同的对齐方式,这是多个高分辨率的原因。选项。使用标准字符串操作技术修改返回的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#(我意识到原帖是javascript),你可以使用以下线程中的信息从URL获取图像流:URL to Stream

以下是使用Javascript:URL To Display Javascript

显示网址​​图片的信息