我正在尝试以编程方式检索超过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号?
发布于 2018-06-29 12:33:26
https://isbndb.com/接口费用:(
所以..。
谷歌网络刮擦之路
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()不是很漂亮,但它起作用了:)
发布于 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上阅读到。
https://stackoverflow.com/questions/51004898
复制相似问题