我想抓住这个网站:https://resultadoselecciones2016.onpe.gob.pe/PRP2V2016/Actas-por-Ubigeo.html
他们正在使用jQuery,所以数据不在" normal" HTML代码。我在Chrome开发者控制台上看到了这一点:
所以我在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()
但它不起作用,它只打印正常的html,而不是你上面看到的响应。
如何获取此数据?
答案 0 :(得分:0)
我刚刚解决了这个问题。我使用requests
模块而不是urllib
,只需复制/粘贴整个标头,如下所示:
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
然后我使用Beautifulsoup
来解析html响应。就是这样。