首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon以编程方式获取产品ASIN

Amazon以编程方式获取产品ASIN
EN

Stack Overflow用户
提问于 2018-06-24 04:44:13
回答 2查看 1.6K关注 0票数 0

我正在尝试以编程方式检索超过500+书籍的ASIN号。

示例: Joseph Heller的Product Catch-22亚马逊网址:https://www.amazon.com/Catch-22-Joseph-Heller/dp/3866155239

我可以通过浏览器搜索每个产品来手动获取产品编号,但是效率不高。在最坏的情况下,我想使用API或wget/curl,但我遇到了一些障碍。

Amazon API并不是最容易使用的……(我一直试图用python修改签名请求散列,但都无济于事。)

然后,我认为谷歌可能是另一个选择,然而,在15次请求之后(即使使用time.sleep(30),谷歌也会因为来自多个IP来源而锁定我几个小时)。

他们不通过API...which显示亚马逊的任何搜索结果,这真的很奇怪...

我试着用wget编写我自己的Google Parser,但之后我不得不把所有这些都导入到BeautifulSoup和reparse...my sed和awk技能中,还有很多需要改进的地方……

Basically...Has有没有人能找到一种更简单的方法来通过编程获得产品的ASIN号?

EN

回答 2

Stack Overflow用户

发布于 2018-06-29 12:33:26

https://isbndb.com/接口费用:(

所以..。

谷歌网络刮擦之路

代码语言:javascript
复制
from urllib.request import Request, urlopen
from bs4 import BeautifulSoup as soup
import requests
import time


def get_amazon_link(book_title):
  url = 'https://www.google.com/search?q=amazon+novel+'+book_title
  print(url)

  url = Request(url)
  url.add_header('User-Agent', 'Mozilla/5.0')

  with urlopen(url) as f:
    data = f.readlines()

    page_soup = soup(str(data), 'html.parser')
    for line in page_soup.findAll('h3',{'class':'r'}):
      for item in line.findAll('a', href=True):
        item = item['href'].split('=')[1]
        item = item.split('&')[0]
        return item


def get_wiki_link(book_title):
  url = 'https://www.google.com/search?q=wiki+novel+'+book_title
  print(url)
  url = Request(url)
  url.add_header('User-Agent', 'Mozilla/5.0')

  with urlopen(url) as f:
    data = f.readlines()

    page_soup = soup(str(data), 'html.parser')

    for line in page_soup.findAll('h3',{'class':'r'}):
      for item in line.findAll('a', href=True):
        item = item['href'].split('=')[1]
        item = item.split('&')[0]
        return item


a = open('amazonbookslinks','w')
w = open('wikibooklinks','w')
with open('booklist') as b:
  books = b.readlines()

  for book in books:
    book_title = book.replace(' ','+')
    amazon_result = get_amazon_link(book_title)
    amazon_msg = book +'@'+ amazon_result
    a.write(amazon_msg + '\n')
    time.sleep(5)
    wiki_result = get_wiki_link(book_title)    
    wiki_msg = book +'@'+ wiki_result
    w.write(wiki_msg + '\n')
    time.sleep(5)
a.close()
w.close()

不是很漂亮,但它起作用了:)

票数 0
EN

Stack Overflow用户

发布于 2018-06-24 04:57:58

根据亚马逊的客服页面:

https://www.amazon.co.uk/gp/help/customer/display.html?nodeId=898182

Amazon代表

标准识别码。我们网站上的几乎每个产品都有自己的ASIN,这是我们用来识别它的唯一代码。

这意味着对于《第二十二条军规》这本书,它的ISBN-10是3866155239

我建议你使用像https://isbndb.com/这样的网站来查找图书的ISBN,它会自动给出你正在寻找的ASIN。它还附带了一个REST API,你可以在https://isbndb.com/apidocs上阅读到。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51004898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档