AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1167206
Accepted
WinEunuuchs2Unix
WinEunuuchs2Unix
Asked: 2019-08-21 17:16:35 +0800 CST2019-08-21 17:16:35 +0800 CST 2019-08-21 17:16:35 +0800 CST

Não é possível grep o preço na página da Web baixada

  • 772

Usando wgeteu baixei esta página da web:

Site Walmart.png

Com o comando:

RobWebsiteAddress="https://www.walmart.ca/en/ip/Dispenser-Set-Tumbler-Organizer-Bathroom-Bin-Holder-Bathroom-Containers-Soap-Set-Accessories-Travel-6Pcs-Accessory-Ejoyous-Dish-Toothbrush/PRD4406MV3EZF75"
DownloadName="Ejoyous1"
wget -O- -q --user-agent=AGENT "$RobWebAddress" > "$DownloadName"

Quando tento abrir o arquivo geditele fica louco.

Quando eu uso:

grep -i 23.31 Ejoyous1 | wc
      0       0       0

O preço não foi encontrado. Se eu usar grepa palavra price, recebo uma longa linha de 146.329 caracteres retornados, o que provavelmente é o que geditenlouqueceu:

$ grep -i price Ejoyous1 | wc
      1    6292  146329

Dentro do arquivo de .5 MB há algumas dicas:

$ grep -i necolas Ejoyous1
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */

Como você pode ver, isso é do site do Walmart. Não tenho nenhum problema em obter os preços da Costco e os preços da Ikea simplesmente baixando a página da Web wgete pressionando-a. Também não tenho problemas para visualizar os arquivos baixados do Costco ou Ikea com gedit.

Como posso interpretar esta linguagem se for um derivado do HTML? Quais ferramentas devo usar? Alguma pista para entrar no caminho certo?

websites css html
  • 2 2 respostas
  • 347 Views

2 respostas

  • Voted
  1. cmak.fr
    2019-08-21T19:30:19+08:002019-08-21T19:30:19+08:00

    As informações de preço são exibidas na página da Web por um script js usando API e json
    É por isso que o texto do preço não está presente no código-fonte da página da Web
    As ferramentas de desenvolvimento da Web do navegador mostrarão que o preço -e mais informações como estoque- vem de uma resposta json https://www.walmart.ca/api/product-page/price-offer

    Como esse tipo de processo pode ser protegido por autenticação e cookies e como wget e curl não podem baixar o arquivo json, uma ideia será cadastre-se e use a API do Wallmart
    https://developer.walmart.com/
    Mas parece que a API é para fornecedores parceiros

    Outra ideia seria reverter o processo de construção da página da Web pública para enviar uma solicitação de API bem formada...

    • 2
  2. Best Answer
    xiota
    2019-08-22T16:23:28+08:002019-08-22T16:23:28+08:00

    Muitas páginas baixam o conteúdo separadamente da página principal (de um "arquivo" separado), então não há nada para grep no arquivo que você está baixando wget. O Firefox executa o javascript, que permite baixar o conteúdo. Você pode pressionar (Ctrl+Shift+C) para ver o console javascript. Clique em "Rede" e recarregue a página para ver quais conexões ela está fazendo. Uma das conexões é um json"arquivo" chamado preço-oferta.

    É possível obter os dados se você conseguir descobrir onde o conteúdo está localizado. Caso contrário, você teria que executar o javascript, como o Firefox faz. No entanto, não é tão simples quanto fornecer um URL. Você também precisa enviar dados para o servidor para obter as informações desejadas. (A API cmak.fr descreve .)

    Descobri que poderia abrir a página da web com o Firefox, que tem a opção "Salvar como" .html. O arquivo de salvamento resultante poderia então ser grepped pelo preço.

    Isso funciona porque o navegador adiciona as informações extras (de json) à página antes de salvá-la. Para pular o clique manual na GUI, você pode baixar a página com o Chromium. (O Firefox também pode ser usado, mas parece mais complicado – MDN Headless Mode .)

    chromium-browser --headless --disable-gpu --dump-dom "https://example.com/" > example.html
    

    Então greppelo preço:

    sed -i.bak -Ee 's@,@,\n@g' example.html 
    grep -wEe '"price"\:[0-9]+\.[0-9]+' example.html 
    
    • 2

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve