Pergunta

Existe uma maneira de extrair dados desejados a partir de um html cru que tenha sido escrito unsemantically sem IDs e classes? Quero dizer, suponho que há um arquivo html salvo de uma página web (perfil) e eu quero extrair os dados como (digamos) 'passatempos'. É possível fazer isso usando PHP?

Foi útil?

Solução

Use regex ! criança eu, estou brincando. Se você sabe o estado da mesma página, eo formato é garantido para permanecer bastante semelhante, então você pode tentar escrever um analisador manual. Como alternativa, há um monte de bibliotecas lá fora, que irá analisar html para. Eu não sou suficientemente familiarizado com PHP para recomendar um, mas eu tenho certeza que alguns googleing poderia levá-lo um longo caminho. Eu tive sorte com John Resig puro javascript HTML parser antes.

No final do dia, se você precisar de informações semânticas de uma página html que não é construído semanticamente, provavelmente você está condenado de forma programática e sua melhor aposta pode ser um Mechanical Turk .

Outras dicas

Parece que você está procurando um PHP DOM Parser, como esta . Ele provavelmente vai ser um pouco complicado para retirar os dados que você precisa, se o HTML é verdadeiramente desprovida de estrutura semântica, mas um analisador DOM é o lugar para começar.

Sim, a técnica é chamada raspagem web . Você pode usar o DOM se o seu html válido. Se a página é gerada dinamicamente o gerador teria usado alguma estrutura, e da minha experiência que puder elementos sempre isolados de interesse.

Se DOM não funciona para você, você pode simplesmente usar expressões regulares (que é o que eu sempre costumava fazer quando se escreve web-aranhas). As expressões regulares são mais eficaz e mais rápido que a escrita raspagem lógica contra uma hierarquia DOM. Então, você precisa abrir algumas das páginas de perfil e analisar a estrutura estática. Em seguida, basta escrever uma expressão regular para isolar as áreas de interesse.

Há duas abordagens para levar com PHP. O primeiro é para limpar seu documento usando a extensão arrumado por isso é XHTML válido, e, portanto, XML bem formado, e, portanto, pode ser analisado usando ferramentas XML.

O segundo é a utilização da libertação de PHP html5lib analisador, que as tentativas para implementar a pesquisa HTML5 em rotinas de análise atual do navegador. Se ele exibe em um navegador, html5lib pode analisá-lo.

Usando qualquer abordagem que você vai acabar com um objeto DOM você pode consultar usando expressões XPath. Desde seus documentos teóricos falta estrutura semântica, você vai querer toook nas partes documento de um "o 5º espaço dentro da 3ª p" mentalidade.

Mais informações aqui (aviso de auto-link).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top