Just another problem

Download automático do Estadão [pdf]

Posted in tech by Adriano on 26/03/2008

Script shell para download automático do jornal O Estado de S. Paulo (é necessário ser assinante para obter o cookie descrito abaixo).

Primeiro deve-se logar em jpdf.estado.com pegar a chave do cookie User (exemplo: 2oxNTY2FmM2FwcmFkb0DnbYgubm8cHJhZG9aZ30fDE1M14Lm5ldZ%3D%3D).

Nota: para obter o cookie no Firefox, entre em Ferramentas > Opções > Privacidade > Mostrar Cookies e filtrar por estado.com.br e copiar o conteúdo do cookie “User”.

Criar o seguinte shell script (pode ser rodado no Windows via Cygwin), trocando o valor da variável cookie e do proxy (caso não use proxy, remova o flag –proxy do wget):

export http_proxy="http://10.1.1.1:8000"

cookie='xcSFSfsfsdfSDF3253'
dd=`date +%d`
mm=`date +%m`
yyyy=`date +%Y`

index="http://jpdf.estado.com.br/menupdfi.php?E=SP&D=$dd/$mm/
$yyyy&A=/estadopdf/sp/paginas/$yyyy/$mm/$dd/A01.pdf"

rm index.txt
/cygdrive/c/temp/wget/wget -nc -k -S -U Mozilla --proxy
--header "Cookie: User=$cookie " -O index.txt $index

if [ ! -f index.txt ]; then exit 1; fi

l=`gawk  'BEGIN {FS="\""} /option VALUE="\/estadopdf/ { print $2 }' index.txt`

for x in $l; do 

	# Ignora os classificados
	if [ ${x%01.pdf} -eq "Cl" ]; then continue; fi
	# Ignora o Guia
	if [ ${x%01.pdf} -eq "Q" ]; then continue; fi

	y=http://jpdf.estado.com.br${x%01.pdf}
	i=1
	flag=0

	while [ $i -lt 40 ]; do
		filename=`printf "%s%02d.pdf\n" $y $i`

		echo "=================================================================="
		echo $filename
		echo "=================================================================="
		/cygdrive/c/temp/wget/wget -P estado -nc -k -S -U Mozilla --proxy
                 --header "Cookie: User=$cookie " $filename
		if [ $? -eq 1 ]; then
			let flag=flag+1
			if [ $flag -gt 1 ]; then
				flag=0
				echo "Proximo caderno..."; break;
			fi
		fi

		sleep 1
		let i=i+1
	done
done
Confira o código aqui.

Para juntar todos os pdfs em um único arquivo, usar o PDF Split and Merge (http://www.pdfsam.org/):

dd=`date +%d`
mm=`date +%m`
yyyy=`date +%Y`

echo "Concatenando os arquivos em ./Estado${yyyy}${mm}${dd}.pdf..."

ls -m estado/*.pdf | tr -d ' ' > lista.csv
java -jar ./pdfsam-basic/lib/pdfsam-console-0.7.3.jar -overwrite
-compressed -l lista.csv
-o ./Estado${yyyy}${mm}${dd}.pdf concat
Anúncios
Tagged with: , , ,

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: