2016-06-08 1 views
0

Ich möchte diese Website scrape: https://resultadoselecciones2016.onpe.gob.pe/PRP2V2016/Actas-por-Ubigeo.htmlWie kann ich diese besondere jQuery-Seite mit Python schaben?

Sie verwenden jQuery, so dass die Daten nicht auf die "normalen" HTML-Code ist. Ich sehe dies auf der Chrome-Entwicklerkonsole:

enter image description here

enter image description here

Also habe ich diese auf Python 2.7:

import urllib 
import urllib2 

url = 'https://resultadoselecciones2016.onpe.gob.pe/PRP2V2016/Actas-por-Ubigeo.html' 

data = "pid=844399127479680.2&_clase=mesas&_accion=displayMesas&ubigeo=140107&nroMesa=034915&tipoElec=10&page=1&pornumero=1" 

req = urllib2.Request(url, data) 
response = urllib2.urlopen(req) 
print response.read() 

Aber es funktioniert nicht, drucken Sie es einfach die normale html, nicht die Antwort, die Sie oben sehen.

Wie kann ich diese Daten bekommen?

+0

Sie benötigen einen Headless-Browser auf Ihrem Server – charlietfl

+0

Sie können Selenium oder RoboBrowser für solche Aufgaben verwenden. –

Antwort

0

Ich habe das gerade gelöst. Ich benutzte das requests Modul statt urllib und einfach kopieren/fügen Sie den gesamten Header, wie folgt aus:

import requests 
from bs4 import BeautifulSoup 

url2 = "https://resultadoselecciones2016.onpe.gob.pe/PRP2V2016/ajax.php" 
head = "[my entire header]" 
data_get_departamentos = "pid=1037937475037058.5&_clase=ubigeo&_accion=getDepartamentos&dep_id=&tipoElec=&tipoC=acta&modElec=&ambito=E&pantalla=" 

r = requests.post(url2, data=data_get_departamentos, headers=head) 
departamentos = r.text 

Dann habe ich Beautifulsoup die HTML-Antwort zu analysieren. Das ist alles.