簡體   English   中英

檢索特定產品的亞馬遜評論

[英]Retrieve Amazon Reviews for a particular product

我目前正在從事一個研究項目,該項目需要分析特定產品的評論並獲得有關該產品的整體概念。

我聽說亞馬遜是獲得產品評論/評論的好地方。 有沒有辦法通過 API 從亞馬遜檢索這些用戶評論/評論? 我嘗試了幾個 python 代碼,但它不起作用.. 如果沒有 API 來檢索數據,我是否需要編寫蜘蛛?

是否有任何方法/地方可以檢索給定產品的用戶評論?

www.Scrapehero.com 有一個關於如何抓取亞馬遜產品詳細信息的很棒的教程: 如何使用 Python抓取亞馬遜產品詳細信息和定價

他們使用的完整純文本代碼是...產品由其 ASIN 標識,因此將數組值更改為您有興趣觀看的產品。

from lxml import html  
import csv,os,json
import requests
from exceptions import ValueError
from time import sleep

def AmzonParser(url):
    headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)    AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'}
page = requests.get(url,headers=headers)
while True:
    sleep(3)
    try:
        doc = html.fromstring(page.content)
        XPATH_NAME = '//h1[@id="title"]//text()'
        XPATH_SALE_PRICE = '//span[contains(@id,"ourprice") or contains(@id,"saleprice")]/text()'
        XPATH_ORIGINAL_PRICE = '//td[contains(text(),"List Price") or contains(text(),"M.R.P") or contains(text(),"Price")]/following-sibling::td/text()'
        XPATH_CATEGORY = '//a[@class="a-link-normal a-color-tertiary"]//text()'
        XPATH_AVAILABILITY = '//div[@id="availability"]//text()'

        RAW_NAME = doc.xpath(XPATH_NAME)
        RAW_SALE_PRICE = doc.xpath(XPATH_SALE_PRICE)
        RAW_CATEGORY = doc.xpath(XPATH_CATEGORY)
        RAW_ORIGINAL_PRICE = doc.xpath(XPATH_ORIGINAL_PRICE)
        RAw_AVAILABILITY = doc.xpath(XPATH_AVAILABILITY)

        NAME = ' '.join(''.join(RAW_NAME).split()) if RAW_NAME else None
        SALE_PRICE = ' '.join(''.join(RAW_SALE_PRICE).split()).strip() if RAW_SALE_PRICE else None
        CATEGORY = ' > '.join([i.strip() for i in RAW_CATEGORY]) if RAW_CATEGORY else None
        ORIGINAL_PRICE = ''.join(RAW_ORIGINAL_PRICE).strip() if RAW_ORIGINAL_PRICE else None
        AVAILABILITY = ''.join(RAw_AVAILABILITY).strip() if RAw_AVAILABILITY else None

        if not ORIGINAL_PRICE:
            ORIGINAL_PRICE = SALE_PRICE

        if page.status_code!=200:
            raise ValueError('captha')
        data = {
                'NAME':NAME,
                'SALE_PRICE':SALE_PRICE,
                'CATEGORY':CATEGORY,
                'ORIGINAL_PRICE':ORIGINAL_PRICE,
                'AVAILABILITY':AVAILABILITY,
                'URL':url,
                }

        return data
    except Exception as e:
        print e

def ReadAsin():
# AsinList = csv.DictReader(open(os.path.join(os.path.dirname(__file__),"Asinfeed.csv")))
AsinList = ['B0046UR4F4',
'B00JGTVU5A',
'B00GJYCIVK',
'B00EPGK7CQ',
'B00EPGKA4G',
'B00YW5DLB4',
'B00KGD0628',
'B00O9A48N2',
'B00O9A4MEW',
'B00UZKG8QU',]
extracted_data = []
for i in AsinList:
    url = "http://www.amazon.com/dp/"+i
    print "Processing: "+url
    extracted_data.append(AmzonParser(url))
    sleep(5)
f=open('data.json','w')
json.dump(extracted_data,f,indent=4)


if __name__ == "__main__":
ReadAsin()

如果您需要定期抓取並瀏覽多個產品頁面,我建議對 scape hero 腳本進行添加,並使用https://pypi.org/project/fake-useragent/作為請求中的“標題”。

否則,如果只是偶爾需要下載評論,則可以使用https://reviewi.me 這是一個免費的網絡基礎工具,適用於多個亞馬遜網站,並允許以 CSV、XLSX 和 JSON 格式導出

Beautiful Soup 是一個 Python API,它允許您從頁面(如亞馬遜產品頁面)中提取 html 數據,並解析文件。 此 API 應允許直接從頁面中獲取評論部分。 這是文檔的鏈接: https : //www.crummy.com/software/BeautifulSoup/bs4/doc/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM