2015-11-24 1 views
0

Je suis actuellement l'extraction de données à partir des données de la série publique de https://www3.bcb.gov.br/expectativas/publico/en/serieestatisticasdemande Python obtenir des données via HTTPS tunnel

Ceci est une page publique qui utilise apache je crois wicket.

Habituellement, je suis ok avec grattage, que ce soit GET ou POST. Ici, mes collègues et moi sommes coincés. Quelqu'un peut-il aider à comprendre quelle URL doit être utilisée pour faire la demande. Voici ce que j'ai jusqu'à présent:

La forme avec des entrées: enter image description here

Le Fiddler capture exécuté manuellement: enter image description here

texte Voir: form19_hf_0 = & indicador = 0 & calculo = 0 & linhaPeriodicidade% 3Aperiodicidade = 0 & tfDataInicial = 11% 2F10% 2F2015 & tfDataFinal = 11% 2F24% 2F2015 & divPeriodoRefereEstatisticas% 3AgrupoAnoReferencia% 3Aano ReferenciaInicial = 16 & divPeriodoRefereEstatisticas% 3AgrupoAnoReferencia% 3AanoReferenciaFinal = 16 & btnCSV = Générer + CSV

Les données du formulaire Je passe à la demande: enter image description here

Résumé:

J'ai besoin d'aide, je peux Il ne semble pas que le POST fonctionne correctement, cela me mène à une page différente, et je ne suis pas sûr de savoir comment travailler avec celui-ci.

NB: J'essaie de récupérer un fichier CSV.

Les bibliothèques que j'utilise sont principalement des requêtes (j'allais utiliser LXML mais je ne pense pas que cela puisse s'appliquer ici).

J'ai essayé de trouver le bon formulaire avec Postman et Fiddler pour comprendre ce que la requête doit être.

+0

Dans quelle URL publiez-vous, quel code d'état HTTP obtenez-vous lors de la redirection? Quel cadre utilisez-vous pour gratter? D'après mon expérience personnelle, je peux recommander [demandes] (http://docs.python-requests.org/fr/latest/) pour gérer des scénarios HTTP plus compliqués. – jojonas

+0

J'utilise les requêtes et lxml. La confusion est que je ne suis pas sûr de laquelle utiliser. s'il revenait tout simplement au HTML et à l'analyse, c'est bien, mais ce n'est pas seulement une demande de post. Il faudra peut-être d'abord créer une session sur laquelle je suis brumeux. – Kelvin

Répondre

0

Ainsi,

La solution à ceci était quelque peu indirecte. Nous n'avons pas été en mesure de faire un POST droit car la page incrémente l'URL POST réelle d'une manière qui était généralement impossible à prévoir.

La solution que nous avons utilisée était l'installation du pilote Web Selenium et l'utilisation de celle-ci pour simuler les valeurs visibles de la liste déroulante et les clics sur les boutons.

Cela a fonctionné très proprement.

Merci et HTH toute autre personne qui pourrait avoir un problème similaire.