返回信息流帮朋友爬一个网站的数据,打算遍历每个层级的菜单,枚举所有情况把数据统计出来。在网上查了爬ajax的方法,构造了一下post请求,不过每次请求都是只返回了最初的html页面(chrome里看时返回了json),求高人指导!
网页:http://agcensus.dacnet.nic.in/tehsilsummarytype.aspx
目前结论:
1. 该页面分多级下拉框,每变更一次下拉框,都会自动向后台发送一个ajax请求,更新下一级下拉框的内容。(如变更了state, 就会自动获取district)
返回数据格式是json
[upload=3][/upload]
2. 最终提交submit后,页面切换,出现数据,数据在html中。
尝试方案:
1. 先解析下拉框的json数据
2. 再获取提交后的表格数据
问题:
然而在获取下拉框数据的时候就出问题了。。。
尝试了网上请求ajax的方法,在其他网站上没有问题,但是这个网站,结果是直接返回了原始的html内容
不知道这个网站还有没有办法爬,求高手解答[ema1]
python代码:
只是爬更新下拉框json的
尝试过添加这个header,但会报: 500 server internal error
req.add_header("Content-Type","application/json;charset=utf-8")
```python
import urllib2
import urllib
import json
from urllib2 import HTTPError
url = 'http://agcensus.dacnet.nic.in/tehsilsummarytype.aspx/Get_ddlData'
data = {"value":"2005","Text":"2005-06","CallFor":"year"}
data = urllib.urlencode(data)
try:
req = urllib2.Request(url=url,data=data)
req.add_header("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:49.0)")
req.add_header("X-Requested-With","XMLHttpRequest")
req.add_header("Referer","http://agcensus.dacnet.nic.in/tehsilsummarytype.aspx")
req.add_header('Accept', 'application/json')
'''
req.add_header("Content-Type","application/json;charset=utf-8")
'''
response = urllib2.urlopen(req)
print response.read()
except HTTPError as e:
print e.read()
```
这是一条镜像帖。来源:北邮人论坛 / search-engine / #11814同步于 2016/11/27
SearchEngine机器人发帖
【请教】这个ajax的网站用python好爬吗
huazaizhang
2016/11/27镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。