Padrões e práticas para raspagem da Web em .Net (C #) [fechado]


9

Estarei montando um aplicativo para automatizar um site / aplicativo externo. Em alguns casos, precisarei navegar no site como um usuário (alguns links que preciso seguir não podem ser previstos e devem ser analisados ​​a partir de uma resposta)

Já estou usando o Html Agility Pack e conheço o Tidy, se necessário.

Existem outras tecnologias que eu deva conhecer?

Existem padrões recomendados para se ajustar rapidamente no caso de o aplicativo Web externo mudar? Estou imaginando encapsular a validação de respostas como algum tipo de estratégia ou padrão semelhante que possa ser facilmente separado / conectado conforme necessário, mas qualquer sugestão específica seria ótima.


Sobre isso, qualquer guia passo a passo ou Introdução - Início rápido que pode ser concluído em 15 a 20 minutos? Recebo um bom exemplo de guia passo a passo, como berniecook.wordpress.com/2013/01/13/… . Queria cobrir rapidamente várias suposições antes de começarmos: instalação (requisitos, ferramentas necessárias), configuração, correndo rapidamente. O alvo será uma amostra "pronto para uso". Talvez seja melhor uma amostra de aplicativo real.
Kiquenet

Respostas:


4

Se você deseja automatizar a navegação de um site externo como um usuário faria, o Watin é perfeito para isso. Ele conduzirá um navegador da web através de um modelo de objeto e possui uma ampla variedade de recursos de análise criados no DOM (além das habilidades não pertencentes ao DOM que você encontraria em um navegador, incluindo scripts).

Aqui está um link:

Watin.org


Watin é como sua biblioteca JavaScript favorita para C #.
The Muffin Man

Alguma solução final com um aplicativo de amostra de código fonte completo ? IMHO, melhores amostras para minimizar a curva de aprendizagem são aplicações reais com código fonte completo e bons padrões e práticas
Kiquenet

0

Se você está procurando a capacidade de fazer alterações rapidamente para rastrear as que estão no aplicativo Web externo, consulte os scripts. Se o C # for o seu idioma preferido, consulte a compilação do código rapidamente. Se você estiver usando um banco de dados, o código do script poderá ser armazenado lá; caso contrário, os arquivos de texto sem formatação também funcionarão.

Quanto aos padrões do GoF, Estratégia é a escolha do livro.

O outro "padrão" a considerar, especialmente porque você mencionou a validação de respostas usando-as para selecionar a próxima ação, é uma máquina de estado finito . Por exemplo, os estados de um cliente de email na web podem ser "não conectado", "na caixa de entrada", "lendo a mensagem", "editando a resposta" etc. Você executaria alguma ação dependendo do estado e, com base em a resposta, selecione o próximo estado.


0

O padrão realmente deve resultar do problema, mas aqui estão algumas opções:

Se você está preocupado principalmente com o custo / aborrecimento do desenvolvimento contínuo: Padrão de Estratégia (já mencionado) - use isso para implementar as interfaces no nível do componente e use uma metodologia de ligação dinâmica para resolver estratégias específicas (implementações). Um contêiner de COI (eu gosto do Autofac atualmente) funcionaria bem.

Se você precisar dar suporte ao acima, além de precisar escalar: Map Reduce (alguém sabe de um bom m + r fx para .net?).


-1

Dependendo de quanto a página da web muda, isso pode ser difícil. Você pode manter uma lista de expressões regulares padrão em um banco de dados e, quando não funcionar mais, poderá percorrer o conjunto de base com outros até atingir um. Então você quer marcar isso para uso futuro.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.