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 / unix / Perguntas / 792345
Accepted
Amirali
Amirali
Asked: 2025-03-12 23:17:39 +0800 CST2025-03-12 23:17:39 +0800 CST 2025-03-12 23:17:39 +0800 CST

Wget baixa conteúdo errado

  • 772

Estou tentando baixar um sitemap.xml específico ( https://www.irna.ir/sitemap/all/sitemap.xml ). O problema é que quando você carrega o sitemap.xml específico por alguns segundos, uma página branca com um cabeçalho (você está redirecionando...) aparece e depois desaparece. Quando li o sitemap.xml baixado, era apenas um arquivo HTML com os detalhes da página de redirecionamento, não o sitemap.xml exato que eu queria.

Parte do arquivo baixado (sitemap.xml) :

<!DOCTYPE html>
<html lang="en">
<head>
<meta name="generator" content=
"HTML Tidy for HTML5 for Linux version 5.8.0">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<link href="/cdn-cgi/assets/css/static-pages-2.6.0.css" rel=
"stylesheet">
<link rel="icon" type="image/x-icon" href="//#DOMAIN#/favicon.ico">
<title></title>
</head>
<body>
<section class=
"error-section error-section--waiting error-section--ltr error-section--hide"
id="en">
<div class="container">
<div class=
"error-section__wrapper error-section__wrapper--waiting">
<div class="error-section__information">
<h1 class="error-section__title"></h1>
<h2 class=
"error-section__subtitle error-section__subtitle--waiting">
Transferring to the website...</h2>
</div>
</div>
</div>
</section>
<section class=
"error-section error-section--waiting error-section--hide" id="fa">
<div class="container">
<div class=
"error-section__wrapper error-section__wrapper--waiting">
<div class="error-section__information">
<h1 class="error-section__title"></h1>
<h2 class=
"error-section__subtitle error-section__subtitle--waiting">در ﺣﺎل
اﻧﺘﻘﺎل ﺑﻪ ﺳﺎﯾﺖ ﻣﻮرد ﻧﻈﺮ ﻫﺴﺘﯿﺪ...</h2>
</div>
</div>
</div>
</section>
<script>
var _this = this;

Comando usado: wget https://www.irna.ir/sitemap/all/sitemap.xml

Parte do chapéu que eu quero (sitemap.xml):

<sitemapindex xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<sitemap>
<loc>https://www.irna.ir/sitemap/1403/12/22/sitemap.xml</loc>
</sitemap>
<sitemap>
<loc>https://www.irna.ir/sitemap/1403/12/21/sitemap.xml</loc>
</sitemap>

Quero baixar o conteúdo XML do sitemap.xml, não a página inicial (que tem o mesmo URL)

wget
  • 1 1 respostas
  • 50 Views

1 respostas

  • Voted
  1. Best Answer
    Gilles Quénot
    2025-03-12T23:39:44+08:002025-03-12T23:39:44+08:00

    Isso não é possível com ferramentas tradicionais como wgetnor curl, porque o xmlé gerado por javascript .

    Você pode verificar isso ao enfrentar esse tipo de problema, por exemplo, com o Firefox:

    • abrirabout:config
    • definido javascript.enabledparafalse
    • recarregue a página.

    O que você pode fazer é usar uma Javascriptbiblioteca capaz na linguagem de sua escolha.

    Eu penso em

    • Javascript pptr
    • python Selênio
    • Microsoft PlayWright

    Implementação do puppeteer ( ) do nodejs :pptr

    const puppeteer = require('puppeteer');
    
    (async () => {
        var url = 'https://www.irna.ir/sitemap/all/sitemap.xml';
    
        const browser = await puppeteer.launch({ headless: true });
        const page = await browser.newPage();
    
        await page.setUserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36");
    
        await page.setRequestInterception(true);
    
        page.on('request', (request) => {
            const headers = Object.assign({}, request.headers(), {
                'Accept': 'application/xml'
            });
            request.continue({ headers });
        });
    
        await page.goto(url, { waitUntil: 'networkidle2' });
        await page.waitForSelector('sitemap > loc');
        const xml = await page.evaluate(() => document.documentElement.outerHTML);
        console.log(xml);
    
        await browser.close();
    })();
    
    • 1

relate perguntas

  • Debian testando wget segfaulting

  • Fazendo um espelho da dúvida do repositório do Ubuntu Server

  • Nenhum arquivo obtido com "wget ​​-r"

  • wget não funciona no modo recursivo

  • Como baixar um arquivo no terminal cujo link redireciona e parece funcionar apenas na GUI?

Sidebar

Stats

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

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

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