Raspe análises de produtos da Amazon e dados de preços usando Python

Publicados: 2018-08-28
Índice mostrar
Por que raspar as análises de produtos da Amazon?
Web Scraping Amazon Product Reviews usando Python
O que este programa de raspagem da Web fará?
Coisas para lembrar ao extrair análises de produtos da Amazon e dados de preços
Precisa de ajuda para extrair dados da Web?

Sun Tzu disse em A Arte da Guerra : “ Se você conhece o inimigo e conhece a si mesmo, não precisa temer o resultado de cem batalhas”. Isso vale para quase todos os negócios, especialmente o negócio de comércio eletrônico. Você pode ter a ideia certa, as pessoas certas, o USP certo, os produtos certos e os preços certos. De alguma forma, não é suficiente. Você também precisa ter dados e insights de concorrência suficientes para determinar se seu modelo de negócios será um sucesso. Esta é a razão pela qual quase qualquer empresa de comércio eletrônico, primeiro rastreia a Amazon para ver como ela se compara ao Golias do comércio eletrônico.

Por que raspar as análises de produtos da Amazon?

Além de ter categorias de produtos enormes e profundas, a Amazon entrega para quase todos os cantos do mundo e possui treze sites específicos de países. A extração de dados de produtos na Amazon pode obter informações interessantes sobre produtos e negócios.

Automatizar esse código com a ajuda de um provedor de serviços pode permitir que você rastreie dados de produtos da Amazon em termos de marca e categoria e crie seu próprio banco de dados de produtos antes de configurar sua loja de comércio eletrônico. Isso ajudará você a economizar horas de trabalho consideráveis ​​e dinheiro se você estiver apenas começando seu negócio.

Web Scraping Amazon Product Reviews usando Python

No artigo “Como extrair dados de hotéis do site de viagens”, mostramos como configurar o ambiente de raspagem da web. Basta seguir as etapas se você for novo no Python. Tudo continua igual. Instale o Atom, Python, use o pip para instalar o BeautifulSoup e copie e cole este programa na tela do editor e salve-o com o nome de amazon_data_extractor.py

Caso esteja com dificuldades para copiar o código, você também pode baixá-lo aqui. Você pode baixar o arquivo e abri-lo no Atom.

[linguagem de código=”python”]
#!/usr/bin/python
# -*- codificação: utf-8 -*-
importar urllib.request
importar urllib.parse
importar urllib.error
de bs4 importe BeautifulSoup
importar ssl
importar json

# Para ignorar erros de certificado SSL
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

url=input("Digite o URL do produto Amazon- ")
html = urllib.request.urlopen(url, context=ctx).read()
sopa = BeautifulSoup(html, 'html.parser')
html = sopa.prettify('utf-8')
product_json = {}
# Este bloco de código ajudará a extrair a Marca do item
para divs em soup.findAll('div', attrs={'class': 'a-box-group'}):
tentar:
product_json['brand'] = divs['data-brand']
parar
exceto:
passar
# Este bloco de código ajudará a extrair o título do produto do item
para períodos em soup.findAll('span', attrs={'id': 'productTitle'}):
name_of_product = spans.text.strip()
product_json['name'] = name_of_product
parar
# Este bloco de código ajudará a extrair o preço do item em dólares
para divs em sopa.findAll('div'):
tentar:
preço = str(divs['data-asin-price'])
product_json['price'] = '$' + preço
parar
exceto:
passar
# Este bloco de código ajudará a extrair a imagem do item em dólares

para divs em soup.findAll('div', attrs={'id': 'rwImages_hidden'}):
for img_tag em divs.findAll('img', attrs={'style': 'display:none;'
}):
product_json['img-url'] = img_tag['src']
parar
# Este bloco de código ajudará a extrair a classificação média por estrelas do produto
para i_tags em sopa.findAll('i',
attrs={'data-hook': 'average-star-rating'}):
para períodos em i_tags.findAll('span', attrs={'class': 'a-icon-alt'}):
product_json['star-rating'] = spans.text.strip()
parar
# Este bloco de código ajudará a extrair o número de avaliações de clientes do produto
para períodos em soup.findAll('span', attrs={'id': 'acrCustomerReviewText'
}):
se abrange.texto:
review_count = spans.text.strip()
product_json['customer-reviews-count'] = review_count
parar
# Este bloco de código ajudará a extrair as principais especificações e detalhes do produto
product_json['details'] = []
para ul_tags em sopa.findAll('ul',
attrs={'class': 'a-lista não ordenada a-vertical a-espaçamento-nenhum'
}):
para li_tags em ul_tags.findAll('li'):
para períodos em li_tags.findAll('span',
attrs={'class': 'a-list-item'}, text=True,
recursivo=Falso):
product_json['details'].append(spans.text.strip())

# Este bloco de código ajudará a extrair as resenhas curtas do produto

product_json['short-reviews'] = []
para a_tags em sopa.findAll('a',
attrs={'class': 'a-size-base a-link-normal review-title a-color-base a-text-bold'
}):
short_review = a_tags.text.strip()
product_json['short-reviews'].append(short_review)
# Este bloco de código ajudará a extrair as longas revisões do produto
product_json['long-reviews'] = []
para divs em soup.findAll('div', attrs={'data-hook': 'review-collapsed'
}):
long_review = divs.text.strip()
product_json['long-reviews'].append(long_review)
# Salvando o arquivo html raspado
com open('output_file.html', 'wb') como arquivo:
arquivo.write(html)
# Salvando os dados raspados no formato json
com open('product.json', 'w') como outfile:
json.dump(product_json, outfile, indent=4)
print('———-A extração dos dados foi concluída. Verifique o arquivo json.———-')

[/código]

O que este programa de raspagem da Web fará?

Bem, deixe-me explicar com um exemplo. Mostrarei uma página de produto na Amazon com comentários e o que o programa retorna, quando as URLs são alimentadas para o programa fornecido.

Vamos pegar este laptop Dell na Amazon. Quando você executar o programa, ele imprimirá “Enter Amazon Product Url-”

Quando isso acontecer, basta copiar e colar o URL fornecido acima. Ao fazer isso, o JSON a seguir será gerado sob o nome de product.json em seu diretório atual. O link para corresponder ao seu JSON é gerado.

[linguagem de código=”python”]
{
“marca”: “Acer”,
“name”: “2018 mais recente Acer Chromebook HD de 14 polegadas LED antirreflexo, processador Intel Dual-Core Celeron 3855u 1,6 GHz, 4 GB de RAM, SSD de 16 GB, HDMI, USB 3.0, Webcam, Wifi 802.11a, Bluetooth, Google Chrome SO”,
“preço”: “$ 229,00”,
“img-url”: “https://images-na.ssl-images-amazon.com/images/I/41nlp137qeL._SX300_QL70_.jpg”,
“classificação por estrelas”: “4,2 de 5 estrelas”,
“customer-reviews-count”: “79 avaliações de clientes”,
"detalhes": [
Ecrã “14” anti-reflexo HD WLED retroiluminado (1366×768) com tecnologia Acer ComfyView, leitor multimédia incorporado”,
“Processador Intel dual-core Skylake Celeron 3855U 1,60 GHz 2M Cache, Intel HD Graphics 510, webcam HD integrada com microfone”,
“Memória LPDDR3 de 4 GB, memória Flash eMMC de 16 GB, suporte à nuvem integrado - salve facilmente seus arquivos em sua conta do Google Drive para acesso seguro onde quer que você vá”,
“Wi-Fi 802.11a de alta velocidade, Bluetooth, HDMI, 2x USB 3.0, 1x USB 3.1 Tipo-C, 1x conector combinado de fone de ouvido/microfone”,
“Google Chrome OS, Até 10 horas de duração da bateria, Cor: Preto”
],
“resenhas curtas”: [
“Melhor e mais seguro computador para navegar na Web e assistir a vídeos de todos os tipos.”,
“… só tive isso por alguns dias, mas eu adoro isso. Fui de um macbook para este…”,
“Ótimo para trabalhos escolares….e Netflix”,
“Este NÃO é um Acer mais novo de 2018 – a data de fabricação é 08/2016”,
“PRODUTO IMPRESSIONANTE… SIMPLES DE USAR”,
“Eu amo este notebook”,
“… é a maior tela – mamãe parece adorar.”,
"fácil de usar"
],
“revisões longas”: [
“Já tenho um Chromebook Acer de 11,5”, comprado há alguns anos e com base no sucesso deste primeiro, decidi ir em frente e comprar outro de tamanho maior. Eu simplesmente AMO, AMO meus dois Chromebooks Acer. No passado, cometi o erro de comprar um computador comum do tipo Microsoft Windows, e poucos deles ainda têm em casa, mas depois de descobrir o Acer Chromebook, devo dizer, gostaria de saber mais cedo sobre a superioridade de um Chromebook sobre um Windows , produto Microsoft….Eu não quero abrir uma guerra de computadores do tipo Microsoft Windows versus um Chromebook Acer aqui….Só estou dizendo…se você está satisfeito com seu produto Microsoft Windows, não estou criticando sua compra, o que estou dizer é que ter ambos os produtos em casa…Adoro a simplicidade do Acer Chromebook sobre os “OUTROS”….Estou plenamente ciente de que um computador do tipo Microsoft Windows pode fazer outras coisas que um Chromebook não pode fazer, mas se você estiver apenas navegar na web e consumir muita mídia da web, Facebook ou Yahoo Mail, YouTube, Netflix….Nada supera o Acer Chromebook em confiabilidade e velocidade. Acer Chromebook liga na velocidade da luz e nenhum vírus de qualquer tipo para se preocupar. Além disso, ele não diminui a velocidade ao atualizar o sistema como o Microsoft Windows faz constantemente….Sim, na tela de 15,6 polegadas, é realmente uma pequena jóia e o preço foi muito bom….Obrigado Amazon. E obrigado ACER.”,
“Eu só tive isso por alguns dias, mas eu adoro isso. Eu fui de um macbook para isso e esperava ficar desapontado. Eu não tive que ajustar nenhuma das configurações ou qualquer coisa com este laptop. Entrei no meu gmail e estava tudo perfeito. Até agora não tenho queixas. Eu não posso acreditar o quão barato foi.”,
“Já tinha há mais de um mês. É uma máquina rápida e fácil de usar com uma tela grande. Comprei para minha filha usar na lição de casa. Nossa escola, como muitas, usa o Google Docs para grande parte do trabalho que é feito online. Um chromebook é tudo o que eles precisam – não há necessidade de Microsoft! Claro que minha filha gosta da tela grande para assistir Netflix quando a lição de casa estiver concluída!”,
“NÃO é um Chromebook de 2018, conforme indicado no título. Eu estava esperando um Chromebook fabricado no final de 2017 ou 2018. Este Chromebook em particular foi fabricado em agosto de 2016. Título muito enganoso……definitivamente não é o “2018 Mais Novo”. O Chromebook parece ser bastante decente.”,
“Eu estava cansado das atualizações defeituosas do Windows 10 e precisava de um computador confiável. O Acer me foi recomendado por vários amigos. Recebi semana passada e adorei. Fácil de configurar e entender, sem calor do disco rígido, rápido, menos incômodo, boa qualidade, etc. Ainda tenho meu Dell com Windows 10, mas por enquanto este Acer Chromebook é minha primeira escolha. Demora um pouco para se acostumar com um teclado com menos teclas e mais espaçados, mas não tenho outros escrúpulos sobre este Chromebook. Estou aprendendo mais sobre o Chromebook diariamente e aprecio sua simplicidade e não há necessidade de segurança adicional. Excelente valor e desempenho. Fiquei satisfeito com o preço e os recursos do Acer. Fácil de conectar à Ethernet com adaptador, se necessário.”,
“Eu amo este laptop! Embora eu esteja acostumado com Macbooks, meu amado morreu recentemente. Eu não estava no mercado para outro macbook (não por escolha) e precisava de um novo laptop rápido. Eu fiz algumas pesquisas rápidas e vi boas críticas sobre este laptop. Encomendei no Amazon prime e recebi em 3 dias. Estou impressionado! Chomebook tornou minha vida extremamente fácil. Tudo está conectado! Algo sobre o teclado facilita a digitação. EU AMO ISSO!",
“Um pouco pesado, mas é a maior tela – mamãe parece adorar… não há mais confusão na tela da área de trabalho… Obrigado”,
“comprei para um parente idoso. fácil de usar!"
]
}
[/código]

Você também verá que salvamos a página html raspada com o nome de output_file.html no mesmo diretório de trabalho. Aqui está o link para verificar como o documento html raspado para esta página de produto específica. Você pode tentar extrair dados de produtos da Amazon deste html usando o BeautifulSoup.

Coisas para lembrar ao extrair análises de produtos da Amazon e dados de preços

1. Você receberá as seguintes coisas de uma página de produto da Amazon, ao usar este raspador de produto

    • uma. Marca
    • b. Nome
    • c. Preço
    • d. Imagem URL
    • e. Classificação por estrelas
    • f. Número de avaliações de clientes
    • e. Detalhes importantes
    • f. Resenhas curtas
    • g. Revisões longas

Cada ponto de dados estará presente no JSON (um ou dois podem estar ausentes se não estiverem presentes para um produto ou se o raspador não conseguir localizá-lo). Cada ponto de dados também virá com seu respectivo rótulo.

2. Bem, não podemos garantir que cada URL da página do produto será processado sem problemas com este código. Isso ocorre porque a Amazon continua alterando seu código regularmente e também todos os itens ou todas as subcategorias não possuem a mesma formatação HTML CSS.

3. Se você executar este programa várias vezes, em um curto espaço de tempo, poderá encontrar este erro, erro HTTP 503. É um erro do lado do servidor. Mas o que significa neste caso é que a Amazon está bloqueando suas tentativas de rastrear dados. Portanto, quando você raspa a Amazon para uso profissional, é sempre sugerido que você obtenha ajuda de serviços de raspagem da Web, como o PromptCloud. Os serviços de web scraping podem configurar um sistema para você, que rastreará automaticamente todos os dados que você precisa, para que você possa se concentrar em seus negócios, sem se preocupar com os dados.

4. O programa é válido apenas para www.amazon.com e não foi testado em nenhum dos sites específicos do país.

Temos novos sites de comércio eletrônico configurando loja quase todos os dias. Em meio a uma concorrência tão acirrada, o sustento e os lucros dos negócios se tornam difíceis na ausência de insights sobre a concorrência. Os dados de produtos da Amazon podem ser a referência e o ponto de partida para você. Web scraping A Amazon pode fornecer informações sobre produtos que ajudarão você a criar e dimensionar a estratégia de negócios e a categoria de produto corretas.

Precisa de ajuda para extrair dados da Web?

Obtenha dados limpos e prontos para uso de sites para aplicativos de negócios por meio de nossos serviços de web scraping. Contate-nos.

Isenção de responsabilidade: O código fornecido neste tutorial é apenas para fins de aprendizado. Não somos responsáveis ​​pela forma como ele é usado e não assumimos qualquer responsabilidade por qualquer uso prejudicial do código-fonte.