O ladrão mencionado aqui refere-se ao uso das poderosas funções fornecidas pelo componente XMLHTTP em XML em ASP para capturar os dados (imagens, páginas da web e outros arquivos) do site remoto para o local e exibi-los na página após vários processamentos. um tipo de programa armazenado em um banco de dados. Você pode usar esse tipo de programa ladrão para realizar algumas tarefas que pareciam completamente impossíveis no passado, como alterar as páginas de um determinado site e transformá-las em suas próprias páginas, ou salvar alguns dados (artigos, fotos) de um determinado site. para ser usado no banco de dados local. As vantagens do Thief são: não há necessidade de manutenção do site, pois os dados do programa Thief vêm de outros sites, e serão atualizados à medida que o site for atualizado, podendo economizar muitos recursos do servidor; O programa ladrão possui apenas alguns arquivos e todo o conteúdo da web vem de outros sites. As desvantagens são: instabilidade, se o site alvo der errado, o programa também dará errado, e se o site de destino for atualizado e mantido, o programa ladrão também precisará ser modificado de acordo com a velocidade, porque é uma chamada remota, a velocidade é tão rápida quanto a leitura de dados no servidor local. É definitivamente mais lenta que isso. Que tal, parece incrível, certo? Vamos começar a aprender alguns conhecimentos introdutórios sobre o programa ladrão agora!
Vamos estudar algo mais simples, o programa de previsão do tempo no site QQ
O código é o seguinte:
<%
Em caso de erro, retomar o próximo
Servidor.ScriptTimeOut=9999999
Função getHTTPage(Caminho)
t = GetBody (Caminho)
getHTTPPage=BytesToBstr(t,GB2312)
Função final
'Primeiro, faça algumas configurações de inicialização para o programa ladrão. As funções dos códigos acima são ignorar todos os erros não fatais, definir o tempo limite de execução do programa ladrão para um tempo muito longo (para que nenhum erro de tempo limite de execução ocorra). e converter o padrão original A codificação UTF-8 deve ser convertida na codificação GB2312, caso contrário, usar diretamente o componente XMLHTTP para chamar uma página da web com caracteres chineses resultará em código ilegível.
Função GetBody(url)
em caso de erro, retome a seguir
Definir recuperação = CreateObject (Microsoft.XMLHTTP)
Com recuperação
.Abra Obter, url, Falso, ,
.Enviar
GetBody = .ResponseBody
Terminar com
Definir recuperação = nada
Função final
'Em seguida, chame o componente XMLHTTP para criar um objeto e realizar as configurações iniciais.
Função BytesToBstr(corpo,Cset)
escurecer objstream
definir objstream = Server.CreateObject (adodb.stream)
objstream.Type = 1
objstream.Modo =3
objstream.Open
objstream.Escrever corpo
objstream.Posição = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Fechar
definir objstream = nada
Função final
Função Newstring(wstr,strng)
Newstring=Instr(lcase(wstr),lcase(strng))
se Newstring<=0 então Newstring=Len(wstr)
Função final
'Para processar os dados capturados, você precisa chamar o componente adodb.stream e realizar as configurações de inicialização. %>
'A seguir está a parte de exibição da página
<%
Dim wstr,str,url,start,over,cidade
'Defina algumas variáveis que precisam ser usadas
cidade = Request.QueryString(id)
'A variável ID retornada pelo programa (ou seja, a cidade selecionada pelo usuário) é atribuída ao id
url=http://appnews.qq.com/cgi-bin/news_qq_search?city=&city&
'Aqui defina o endereço da página que precisa ser rastreada. Claro, você também pode especificar um endereço diretamente sem usar variáveis.
wstr=getHTTPágina(url)
'Obtém todos os dados da página especificada
start=Newstring(wstr, <html>)
'Aqui define o cabeçalho dos dados que precisam ser processados. Esta variável deve ser definida de acordo com as diferentes situações. O conteúdo específico pode ser determinado visualizando o código-fonte da página que precisa ser rastreada. Como precisamos rastrear a página inteira neste programa, configuramos ele para rastrear todas as páginas. Observe que o conteúdo definido deve ser exclusivo do conteúdo da página e não pode ser repetido.
over=Newstring(wstr, </HTML>)
'Correspondente ao início é a cauda dos dados que precisam ser processados. Da mesma forma, o conteúdo definido deve ser exclusivo na página.
corpo = meio (wstr, início, início excessivo)
'Define o intervalo de páginas exibidas
'Agora é hora de usar Qiankun Shift +++ Através da substituição, você pode substituir os caracteres especificados nos dados por alguns caracteres.
body = replace(body,skin1,Weather Forecast-Skin Network)
corpo = substituir (corpo, http://appnews.qq.com/cgi-bin/news_qq_search?city,tianqi.asp?id)
'O trabalho de substituição foi concluído neste programa. Se houver outras necessidades, você pode continuar a realizar operações de substituição semelhantes.
resposta.escrever corpo
%>
Após substituir o conteúdo que precisa ser modificado, o conteúdo modificado pode ser exibido na página. Este é o fim do processo
Uso e resultados do programa: Remova a parte descritiva do código acima e salve-o como tianqi.asp, carregue-o em um espaço que suporte ASP e XML e execute-o no navegador. Você pode embelezar ainda mais a interface ou otimizar o programa com base neste programa.
Os itens acima são apenas alguns aplicativos básicos do componente XMLHTTP. Na verdade, ele também pode implementar muitas funções, como salvar imagens remotas no servidor local e usar o componente adodb.stream para salvar os dados adquiridos no banco de dados. O ladrão tem uma ampla gama de funções e usos. Mas você não pode usá-lo para fazer coisas ilegais!
Talvez algumas pessoas ainda queiram perguntar: esse tipo de programa ladrão é apenas uma patente da ASP? Não, o PHP pode obter o mesmo efeito através da função fopen. Devido às várias características do próprio PHP, o programa ladrão escrito tem vantagens óbvias em tamanho e eficiência de execução em comparação com o ASP. explique-os um por um.