我正在尝试以编程方式检索超过500本书的ASIN编号。
示例:Joseph Heller的Product Catch-22 亚马逊网址:MSDN document
我可以通过通过浏览器搜索每个产品来手动获得产品编号,但是效率不高。在最坏的情况下,我想使用API或wget / curl,但遇到了一些绊脚石。
Amazon API并不是最简单易用的...(我一直不知所措,试图用python正确获取签名请求哈希值。)
然后我认为googler可能是另一个选择,但是在15次请求之后(即使有time.sleep(30),谷歌也将我锁定了几个小时(也来自多个IP来源))。
bing怎么样...他们没有通过API显示任何亚马逊结果...真是奇怪...
我尝试用wget编写自己的Google Parser,但随后我必须将所有内容导入BeautifulSoup并进行解析...我的sed和awk技能还有很多不足之处...
基本上...有人能以编程方式获得产品的ASIN编号的简便方法吗?
谢谢:)
答案 0 :(得分:0)
https://isbndb.com/的API费用:(
所以...
走了Google Web抓取路线
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()
不是很漂亮,但它起作用了:)
答案 1 :(得分:-1)
根据Amazon的客户服务页面:
https://www.amazon.co.uk/gp/help/customer/display.html?nodeId=898182
ASIN代表亚马逊标准识别号。几乎每一个 我们网站上的产品具有自己的ASIN,这是我们用来识别的唯一代码 它。对于书籍,ASIN与ISBN号相同,但对于所有 其他产品,将商品上传到我们的网站后会创建一个新的ASIN 目录。
这意味着对于书'Catch 22',其ISBN-10为3866155239
。
我建议您使用https://isbndb.com/之类的网站来查找书籍的ISBN,这会自动为您提供所需的ASIN。它还带有一个REST API,您可以在https://isbndb.com/apidocs上进行阅读。