刚接触 python ,用 python 抓教务系统成绩,但只抓到部分数据,成绩位于 html 的一个 table 里,但只抓到了表头,不知道为什么?
源代码为这样:
<table class="datelist" cellspacing="0" cellpadding="3" border="0" id="Datagrid1" style="DISPLAY:block">
<tr class="datelisthead">
<td><a href="javascript:__doPostBack('Datagrid1$_ctl1$_ctl0','')">学年</a></td><td><a href="javascript:__doPostBack('Datagrid1$_ctl1$_ctl1','')">学期</a></td><td><a href="javascript:__doPostBack('Datagrid1$_ctl1$_ctl2','')">课程代码</a></td><td><a href="javascript:__doPostBack('Datagrid1$_ctl1$_ctl3','')">课程名称</a></td><td>课程性质</td><td>课程归属</td><td>学分</td><td>绩点</td><td>成绩</td><td>辅修标记</td><td>补考成绩</td><td>重修成绩</td><td>开课学院</td><td>备注</td><td>重修标记</td>
</tr><tr>
<td>2012-2013</td><td>1</td><td>103200019</td><td>中国近现代史纲要</td><td>人格与素养课程群必修</td><td> </td><td>2.0</td><td> </td><td>84</td><td>0</td><td> </td><td> </td><td>政治学院</td><td></td><td></td>
</tr><tr class="alt">
<td>2012-2013</td><td>1</td><td>103200059</td><td>形势与政策 1(上)</td><td>人格与素养课程群必修</td><td> </td><td>0.25</td><td> </td><td>84</td><td>0</td><td> </td><td> </td><td>政治学院</td><td></td><td></td>
</tr><tr>
<td>2012-2013</td><td>1</td><td>104200009</td><td>军训</td><td>人格与素养课程群必修</td><td> </td><td>2.0</td><td> </td><td>81</td><td>0</td><td> </td><td> </td><td>武装部</td><td></td><td></td>
</tr><tr class="alt">
<td>2012-2013</td><td>1</td><td>104200019</td><td>体育-1</td><td>人格与素养课程群必修</td><td> </td><td>2.0</td><td> 3.20</td><td>83</td><td>0</td><td> </td><td> </td><td>体育学院</td><td></td><td></td>
</tr><tr>
<td>2012-2013</td><td>1</td><td>105100009</td><td>大学英语(1)</td><td>表达与理解课程群必修</td><td> </td><td>4.0</td><td> 4.00</td><td>90</td><td>0</td><td> </td><td> </td><td>外国语学院</td><td></td><td></td>
但抓到的数据为
<table class="datelist" cellspacing="0" cellpadding="3" border="0" id="Datagrid1" style="DISPLAY:block">
<tr class="datelisthead">
<td><a href="javascript:__doPostBack('Datagrid1$_ctl1$_ctl0','')">学年</a></td><td><a href="javascript:__doPostBack('Datagrid1$_ctl1$_ctl1','')">学期</a></td><td><a href="javascript:__doPostBack('Datagrid1$_ctl1$_ctl2','')">课程代码</a></td><td><a href="javascript:__doPostBack('Datagrid1$_ctl1$_ctl3','')">课程名称</a></td><td>课程性质</td><td>课程归属</td><td>学分</td><td>绩点</td><td>成绩</td><td>辅修标记</td><td>补考成绩</td><td>重修成绩</td><td>开课学院</td><td>备注</td><td>重修标记</td>
</tr>
</table>
表格直接结束了,后面成绩部分不显示,这是为什么啊?
1
bdbai 2015-12-12 09:21:16 +08:00 via iPhone
有没有漏掉鉴权之类的东西,比如用户登录、 Cookie 这些?
|
2
13k 2015-12-19 11:13:22 +08:00
后面部分是要看 js 生成的,需要类似 selenium+浏览器来抓
或者直接看 javascript:__doPostBack('Datagrid1$_ctl1$_ctl3','')发起什么请求,然后直接 python 构造这个请求来获取数据 |