简介
落户广州有个环节是政府公示落户人员的名单和审核结果,地址是:关于引进人才入户人员名单的公示
由于这个页面不支持搜索,只能肉眼查找,要手动点击几十次“下一页”,效率非常低,因此小蓝藻打算写一个脚本,把所有公示名单都抓出来。
这样不仅方便查找,并且还可以做自动匹配,一旦找到名字,就发送通知,更方便及时知道公示结果。
代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib,urllib2
from bs4 import BeautifulSoup
import json
import time
import sys
url='http://www.hrssgz.gov.cn/vsgzpiapp01/GZPI/Gateway/PersonIntroducePublicity.aspx'
req = urllib2.Request(url = url)
res = urllib2.urlopen(req)
res = res.read()
soup = BeautifulSoup(res, 'html.parser')
pageCount = soup.find(id="PageCount").text
pageRange = int(pageCount) + 1
for i in range(1,pageRange):
req = urllib2.Request(url = url)
res = urllib2.urlopen(req)
res = res.read()
soup = BeautifulSoup(res, 'html.parser')
key = soup.find(id="__VIEWSTATE")["value"]
params = {
'__VIEWSTATE':key,
'__EVENTTARGET':'LinkButton1',
'__EVENTARGUMENT':'',
'ToPage':i
}
params = urllib.urlencode(params)
request = urllib2.Request(url = url,data = params)
response = urllib2.urlopen(request).read()
soup2 = BeautifulSoup(response, 'html.parser')
pageresult = soup2.find(id="data_field")
print pageresult
观察了这个公示页面的前端代码,发现每次在点击“下一页”、“跳转”等按钮的时候,会触发对应的方法,然后传递相应信息到后端,后端再返回对应的数据。
由于我要遍历所有页面的数据,因此调用传递页码的方式来获取所有数据。
返回的数据都是html,可读性很差,因此我采用BeautifulSoup库来解析页面,将展示数据的table展示出来
由于网站不需要做任何登陆验证,所以代码就非常简单啦,直接用python运行这个脚本就可以了,结果如下:
$ python do.py
<td id="data_field">
<table bgcolor="Silver" border="0" cellpadding="0" cellspacing="1" class="listtable" id="DDDeclareInfo" rules="all" width="100%">
<tr align="center" class="ListHeader">
<td>姓名</td><td>单位名称</td><td>批复结果</td><td>审批单位</td><td>公示开始时间</td><td>公示结束时间</td>
</tr><tr class="ListItem">
<td>黄铭川</td><td>广州市保瑞物流有限公司</td><td>同意</td><td> 广州市南沙区人力资源和社会保障局</td><td>2018年6月13日 11:27</td><td>2018年6月21日 11:27</td>
</tr><tr class="ListAltern">
<td>朱雪琦</td><td>广州丰铁汽车部件有限公司</td><td>同意</td><td> 广州市南沙区人力资源和社会保障局</td><td>2018年6月13日 11:27</td><td>2018年6月21日 11:27</td>
</tr><tr class="ListItem">
<td>戴森</td><td>中信环境技术(广州)有限公司</td><td>同意</td><td> 广州市南沙区人力资源和社会保障局</td><td>2018年6月13日 11:27</td><td>2018年6月21日 11:27</td>
</tr><tr class="ListAltern">
<td>林茵</td><td>广州市南沙区珠江街社区综合管理服务中心(珠江街出租屋管理服务中心、珠江街劳动和社会保障服务中心、珠江街计划生育服务所)</td><td>同意</td><td> 广州市南沙区人力资源和社会保障局</td><td>2018年6月13日 11:27</td><td>2018年6月21日 11:27</td>
</tr><tr class="ListItem">
<td>骆佳薇</td><td>广州市友居房地产代理有限公司</td><td>同意</td><td> 广州市南沙区人力资源和社会保障局</td><td>2018年6月13日 11:27</td><td>2018年6月21日 11:27</td>
</tr><tr class="ListAltern">
<td>涂兵兵</td><td>广州市碧南房地产开发有限公司</td><td>同意</td><td> 广州市南沙区人力资源和社会保障局</td><td>2018年6月13日 11:27</td><td>2018年6月21日 11:27</td>
</tr><tr class="ListItem">
<td>张效磊</td><td>中交二航局南方工程有限公司</td><td>同意</td><td> 广州市南沙区人力资源和社会保障局</td><td>2018年6月13日 11:27</td><td>2018年6月21日 11:27</td>
</tr><tr class="ListAltern">
<td>曾晓容</td><td>广州聚微光电科技有限公司</td><td>同意</td><td>广州市增城区人力资源和社会保障局(原人事局)</td><td>2018年6月13日 9:35</td><td>2018年6月21日 9:35</td>
</tr><tr class="ListItem">
<td>温玉明</td><td>广州江河幕墙系统工程有限公司</td><td>同意</td><td>广州市增城区人力资源和社会保障局(原人事局)</td><td>2018年6月13日 9:30</td><td>2018年6月21日 9:30</td>
</tr><tr class="ListAltern">
<td>黄平</td><td>广州江河幕墙系统工程有限公司</td><td>同意</td><td>广州市增城区人力资源和社会保障局(原人事局)</td><td>2018年6月13日 9:29</td><td>2018年6月21日 9:29</td>
</tr>
</table>
</td>
<td id="data_field">
<table bgcolor="Silver" border="0" cellpadding="0" cellspacing="1" class="listtable" id="DDDeclareInfo" rules="all" width="100%">
<tr align="center" class="ListHeader">
<td>姓名</td><td>单位名称</td><td>批复结果</td><td>审批单位</td><td>公示开始时间</td><td>公示结束时间</td>
</tr><tr class="ListItem">
<td>刘志</td><td>广州大学松田学院</td><td>同意</td><td>广州市增城区人力资源和社会保障局(原人事局)</td><td>2018年6月13日 9:29</td><td>2018年6月21日 9:29</td>
</tr><tr class="ListAltern">
<td>陈玉瑶</td><td>广州华立科技职业学院</td><td>同意</td><td>广州市增城区人力资源和社会保障局(原人事局)</td><td>2018年6月13日 9:25</td><td>2018年6月21日 9:25</td>
</tr><tr class="ListItem">
<td>陈婉宜</td><td>广州易淘商贸有限公司</td><td>同意</td><td>广州市白云区人力资源和社会保障局</td><td>2018年6月13日 8:55</td><td>2018年6月21日 8:55</td>
</tr><tr class="ListAltern">
<td>于冬</td><td>广州肽达生物科技有限公司</td><td>同意</td><td>广州市白云区人力资源和社会保障局</td><td>2018年6月13日 8:55</td><td>2018年6月21日 8:55</td>
</tr><tr class="ListItem">
<td>杜纹纹</td><td>广州天旗生物科技有限公司</td><td>同意</td><td>广州市白云区人力资源和社会保障局</td><td>2018年6月13日 8:55</td><td>2018年6月21日 8:55</td>
</tr><tr class="ListAltern">
<td>朱利枚</td><td>白云区永平街社区卫生服务中心</td><td>同意</td><td>广州市白云区人力资源和社会保障局</td><td>2018年6月13日 8:55</td><td>2018年6月21日 8:55</td>
</tr><tr class="ListItem">
<td>张洋</td><td>广州完全日用品有限公司</td><td>同意</td><td>广州市白云区人力资源和社会保障局</td><td>2018年6月13日 8:55</td><td>2018年6月21日 8:55</td>
</tr><tr class="ListAltern">
<td>阳良芬</td><td>广州市白云区良芬商品信息咨询服务部</td><td>同意</td><td>广州市白云区人力资源和社会保障局</td><td>2018年6月13日 8:55</td><td>2018年6月21日 8:55</td>
</tr><tr class="ListItem">
<td>熊志祥</td><td>广州市皇健医药科技有限公司</td><td>同意</td><td>广州市白云区人力资源和社会保障局</td><td>2018年6月13日 8:55</td><td>2018年6月21日 8:55</td>
</tr><tr class="ListAltern">
<td>沈素妃</td><td>广州市斌盛贸易有限公司</td><td>同意</td><td>广州市白云区人力资源和社会保障局</td><td>2018年6月13日 8:55</td><td>2018年6月21日 8:55</td>
</tr>
</table>
...
以上内容输出到文本,然后用grep来查找你的名字,或者输出成html文件,直接用浏览器打开:
你也可以写个脚本,用crontab定时跑,然后用mail或者调用其他发送通知的API,来做定时检测和通知,更方便哦。