Curl e imagem do Google

2

Eu tentei raspar a página de resultados de pesquisa de imagens do Google com o curl do Terminal, mas ela não me fornece uma fonte html real que eu possa visualizar com "Exibir a origem da página" no Firefox. Eu tentei tanto "curl [url]" e "curl -L [url]". Ambos me deram uma pequena fonte de html que inclui "Seu cliente não tem permissão para obter URL" "deste servidor". Como posso obter a fonte html que posso obter no Firefox com um script de shell?

Parte do pequeno html que eu tenho no Terminal disse isso.

Please see Google's Terms of Service posted at http://www.google.com/terms_of_service.html

If you believe that you have received this response in error, please report your problem. However, please make sure to take a look at our Terms of Service (http://www.google.com/terms_of_service.html). In your email, please send us the entire code displayed below.

    
por stacko 23.08.2016 / 14:01

2 respostas

1

A mensagem de erro contém um link corrompido, mas os termos de serviço atuais do Google dizem:

Do not misuse our Services, for example, do not interfere with our Services or try to access them using a method other than the interface and the instructions that we provide.

(ênfase minha)

Eles estão recusando sua solicitação por algum motivo. Pode ser que eles tenham visto atividades suspeitas de seu endereço IP, mas é mais provável que eles tenham descoberto que você está usando curl em vez de um navegador comum (no qual você veria os anúncios).

Você pode fazer com que curl imite esse navegador, fornecendo um agente de usuário comum (por exemplo, de link ) para a opção -A , mas isso ainda estaria violando o ToS.

    
por 23.08.2016 / 14:53
1

Eu acho que é mais provável que seja um problema com cookies (ou falta deles). Você pode tentar brincar com a opção -c [file] do curl para seu cookie jar, salvando os cookies em um arquivo. Você pode ter que fazer um script de solicitação de onda para dizer "google.com" para enviar a pesquisa de imagens e salvar os cookies em file e, em seguida, uma segunda consulta para raspar o URL da web que você forneceu para a pesquisa real e carregar guardou cookies usando a opção -b [file] . Pode ser que apenas precise do cookie de ID de sessão.

Você pode ver na captura de tela abaixo que o Google atribui várias variáveis de cookie.

    
por 23.08.2016 / 14:50

Tags