Vou desenvolver algumas funcionalidades que rastreiam vários sites públicos e processam / agregam os dados neles. Nada sinistro como procurar endereços de email - na verdade, é algo que pode realmente direcionar tráfego adicional para seus sites. Mas eu discordo.
Além de honrar robots.txt
, existem regras ou diretrizes, escritas ou não escritas, que devo seguir para (a) evitar parecer malicioso e potencialmente ser banido e (b) não causar problemas aos proprietários / webmasters do site?
Alguns exemplos em que consigo pensar podem ou não importar:
- Número de solicitações paralelas
- Tempo entre solicitações
- Tempo entre rastreamentos inteiros
- Evitando links potencialmente destrutivos (não queira ser o Spider of Doom - mas quem sabe se isso é prático)
No entanto, isso é apenas cuspir; existe alguma sabedoria testada e comprovada por aí que seja amplamente aplicável a qualquer pessoa que pretenda escrever ou utilizar uma aranha?
web-scraping
web-crawler
Aaronaught
fonte
fonte
Respostas:
Além de obedecer o robots.txt, obedeça
nofollow
enoindex
nos<meta>
elementos e links:Muitos acreditam que o robots.txt não é a maneira correta de bloquear a indexação e, por causa desse ponto de vista, instruíram muitos proprietários de sites a confiar na
<meta name="robots" content="noindex">
tag para instruir os rastreadores da Web a não indexar uma página.Se você está tentando fazer um gráfico de conexões entre sites (algo semelhante ao PageRank),
(e
<meta name="robots" content="nofollow">
) deve indicar que o site de origem não confia no site de destino o suficiente para dar o aval adequado. Portanto, enquanto você pode indexar o site de destino, não deve armazenar a relação entre os dois sites.O SEO é mais uma arte do que uma ciência real, e é praticado por muitas pessoas que sabem o que estão fazendo, e muitas que lêem os resumos executivos de pessoas que sabem o que estão fazendo. Você vai se deparar com problemas nos quais será impedido de acessar sites por fazer coisas que outros sites consideravam perfeitamente aceitáveis devido a alguma regra que alguém ouviu ou leu em um post no SEOmoz que pode ou não ser interpretado corretamente.
Devido a esse elemento humano, a menos que você seja Google, Microsoft ou Yahoo !, você é considerado malicioso, a menos que se prove o contrário. Você precisa tomar cuidado extra para agir como se não fosse uma ameaça para o proprietário de um site, e agir de acordo com o que você deseja que um rastreador potencialmente malicioso (mas que seja benigno) aja:
/admin/
eles, por exemplo.Mesmo assim, será uma batalha difícil, a menos que você recorra a técnicas de chapéu preto, como a falsificação da UA ou o mascaramento proposital de seus padrões de rastreamento: muitos proprietários de sites, pelos mesmos motivos acima, bloquearão um rastreador desconhecido à vista, em vez de usar a chance de que alguém não esteja tentando "invadir o site". Prepare-se para muitas falhas.
Uma coisa que você pode fazer para combater a imagem negativa que um rastreador desconhecido terá é deixar claro na sua sequência de agente do usuário quem você é:
Onde
http://example.com/aarobot.html
explica o que você está tentando realizar e por que você não é uma ameaça. Essa página deve ter algumas coisas:Essa última é a chave: uma boa opção de exclusão é como a Money Back Guarantee ™ e obtém uma quantidade razoável de boa vontade. Deve ser humano: uma etapa simples (um endereço de e-mail ou, idealmente, um formulário) e abrangente (não deve haver nenhuma "dica": optar por não participar significa que você para de rastrear sem exceção).
fonte
(+http://example.com/aarobot.html)
. Não sei qual é a finalidade do+
sinal aqui, mas já o vi com frequência. O Web-Sniffer faz isso, e muitos outros.rel="noindex"
como se fosse um<a>
atributo, mas a página à qual você vincula a descreve como parte<meta>
docontent
atributo da tag . São os dois, ou isso foi um erro de digitação na resposta?Embora isso não responda a todas as suas perguntas, acredito que será útil para você e para os sites que você rastrear.
Semelhante à técnica usada para sites de força bruta sem chamar atenção, se você precisar rastrear um pool de sites grande o suficiente, não rastreie a próxima página no site até ter rastreado a próxima página de todos os outros sites . Bem, os servidores modernos permitirão a reutilização da conexão HTTP ; portanto, convém fazer mais de um para minimizar a sobrecarga, mas a idéia ainda permanece. Não rastreie um site até a exaustão até passar para o próximo . Compartilhe o amor.
Para você, no final do dia, você ainda pode ter rastreado o mesmo número de páginas, mas o uso médio da largura de banda em um único site será muito menor.
Se você quiser evitar ser a aranha da destruição, não existe um método infalível. Se alguém quiser enfiar o feijão no nariz , provavelmente o fará de maneiras que você nunca poderia prever. Dito isto, se você não se importa de perder uma página válida ocasional, tenha uma lista negra de palavras para um link que o impedirá de segui-la. Por exemplo:
Não é à prova de idiotas, mas às vezes você simplesmente não pode impedir as pessoas de aprender da maneira mais difícil;)
fonte
robots.txt
já é mencionado na pergunta, e pode ser assumido.Meu único conselho é ouvir o que o site que você está rastreando está dizendo e mudar dinamicamente seu rastreamento em reação a isso.
O site é lento? Rastrear mais devagar para não fazer o DDOS. É rápido? Rastrear um pouco mais, então!
O site está com erro? Rastreie menos para não estressar um site que já está sob pressão. Use o aumento exponencial dos tempos de repetição, para repetir menos quanto mais tempo o site estiver com erros. Mas lembre-se de tentar mais tarde, eventualmente, para ver o que está faltando devido a, digamos, um erro de uma semana em um caminho de URL específico.
Recebendo muitos 404s? (lembre-se, nossas 404 páginas sofisticadas também levam tempo para o servidor!) Evite rastrear mais URLs com esse caminho por enquanto, pois talvez tudo esteja faltando; se
file001.html
-file005.html
não está lá, aposto que dólares em rosquinhasfile999.html
também não! Ou talvez diminua a porcentagem de tempo que você recupera qualquer coisa nesse caminho.Eu acho que é aqui que muitos rastreadores ingênuos dão errado, por terem uma estratégia robótica que eles executam da mesma forma, independentemente dos sinais que estão voltando do site de destino.
Um rastreador inteligente é reativo ao (s) site (s) de destino em que está tocando.
fonte
Outros mencionaram alguns dos mantras, mas deixe-me acrescentar alguns.
Preste atenção ao tipo e tamanho do arquivo. Não puxe esses binários enormes.
Otimize para algumas páginas típicas de "listagem de diretórios" de servidores da web. Em particular, eles permitem classificar por tamanho, data, nome, permissões e assim por diante. Não trate cada método de classificação como uma raiz separada para rastreamento.
Peça gzip (compactação em tempo real) sempre que disponível.
Limite a profundidade ou detecte recursão (ou ambas).
Limite o tamanho da página. Algumas páginas implementam tarpits para impedir bots de remoção de email. É uma página que carrega na velocidade do caracol e tem terabytes de comprimento.
Não indexe 404 páginas. Os motores que possuem os maiores índices fazem isso e recebem ódio merecido em troca.
Isso pode ser complicado, mas tente detectar farms de balanceamento de carga. Se v329.host.com/pages/article.php?99999 retornar o mesmo que v132.host.com/pages/article.php?99999, não raspe a lista completa de servidores de v001.host.com até v999. host.com
fonte
Vou apenas adicionar uma coisinha.
Direitos autorais e outros problemas legais: eu sei que você escreve que eles são sites públicos; portanto, pode não haver direitos autorais, mas pode haver outros problemas legais no armazenamento dos dados.
Obviamente, isso dependerá dos dados de qual país você está armazenando (e de onde você os armazena). Caso em questão, os problemas com a Lei do Patriota dos EUA versus a Diretiva de Proteção de Dados da UE. Um resumo executivo do problema é que as empresas americanas precisam fornecer seus dados, por exemplo. se solicitado pelo FBI, sem informar os usuários disso, onde a Diretiva de Proteção de Dados declara que os usuários devem ser informados disso. Se http://www.itworld.com/government/179977/eu-upset-microsoft-warning-about-us-access-eu-cloud
fonte
Ligue para o seu webcrawler ou spider, associado ao seu nome. Isso é importante. Os mecanismos de análise e similares procuram aqueles que o associam como uma ... aranha. ;)
O jeito que eu vi isso é através do cabeçalho da solicitação User-Agent
fonte
fonte