概述
题外话:前一段时间翻译了一部关于GIS的纪录片,然后发了一篇文章,没想到有这么多人感兴趣,为了让广大GISER知道有这部神片,遂想投稿至GIS相关的专栏,不曾想居然还没人开设,真是“绕树三匝,何枝可依”,于是开设了地理信息系统/遥感/定位导航(GIS/RS/GPS) - 知乎专栏,以便更好的学习与交流。欢迎大家的投稿!
即将踏入六月,酷暑袭来,一场没有硝烟的战场号角即将吹响---高考,高三的学子们正向心仪的大学发力。
选择一所大学很是重要,了解一所大学热度排名可以作为报考志愿的参考,不迷失方向。恰巧公司的微信群里有很多老师需要全国开设GIS(地理信息)和RS(遥感)专业的高校统计,所以我趁着端午休假无聊,防止长时间不用Python手生,准备爬取一些高校的信息。
于是开整~~~
通过全国高校查询 - 全国高校信息综合查询系统这个网站爬取数据源,首先正常打开网页,了解一下页面数据结构,看着很简单,应该很容易
但是我错了,使用正常爬取方式,得到的页面源码中没有表格信息,分析了一下,发现是通过JS生成的,那么正常的方法是不行了。是时候体会Python无所不能的时候了,我们可以用Selenium + PhantomJS + python(2.7)真实地模拟浏览器环境,等‘浏览器’加载完数据后,我们再抓取源码,保证网页源码的完整。
Selenium + PhantomJS + python(2.7)具体部署过程如下
1)、安装Python2.7和pycharm,这个应该不难,下载安装包安装即可
2)、然后安装Selenium,推荐用pycharm,这样超级方便
3)、PhantomJS
下载为zip的文件,解压至任意路径都行
使用Selenium + PhantomJS + python(2.7)主要代码如下
from bs4 import BeautifulSoup
from selenium import webdriver
def get_university(url):
print(url)
driver = webdriver.PhantomJS(executable_path=r'D:Python27phantomjs-2.1.1-windowsbinphantomjs.exe')
driver.get(url)
data = driver.page_source
# print(data)
driver.close()
bfcontent = BeautifulSoup(data, 'lxml')
剩下就是将源码中信息解析出来,由于这个网站不是纯官方的,红色字体高校名称估计有商业赞助的,那么排名也就~~~,你懂的,
所以在解析的过程中需要判断标签中class属性
主要代码如下:
这样就没啥大问题了,最终爬取到全国2784所全国高校排名热度信息。
作为一名GISer,想看看所有高校在地理位置上的展示,于是使用地理编码的API,python 正好也有geocoder这个库,这里奉上该库的github项目地址DenisCarriere/geocoder
该库支持丰富的在线编码提供商。本来想用ArcGIS和谷歌的,但是网络有些问题,处理速度巨慢,原因还是你懂得~~,最终用百度的,众所周知的原因,百度的坐标有一定的偏移,但是偏得也不会那么离谱,能用!
主要代码如下:
PS:使用百度的地理编码,需要开通开发者账号(地址为http://lbsyun.baidu.com/apiconsole/key),然后获取key就可以了
然后就得到了带有经纬度信息的全国高校信息和分布图,
然后又顺便爬取全国开设GIS(地理信息)和RS(遥感)专业的高校统计
欢迎关注我的小小公众号! zyouzz
分享RS/GIS,无人机,物联网,大数据技术和资讯,萃取行业动向,为每天的进步助力!
看到不少同学留言说没有自己的学校,真的抱歉,由于作图的原因,有的学校标注没有显示,实际山东科技大学,武汉大学都有的。下面我将爬到GIS(地理信息系统)、RS(遥感)专业的高校信息全部贴出来,方便大家的参考。
PS:如果有遗漏,欢迎在评论区补充。
开设GIS专业的高校:
开设RS专业的高校:
补充RS专业:山东师范大学(@尚群 ) 河南工程学院( @崔佳豪 )
最后
以上就是炙热大门为你收集整理的用python爬取考研信息网_【高考、考研党的福利】使用Python爬取全国高校及GIS/RS专业信息【附代码和Excel】...的全部内容,希望文章能够帮你解决用python爬取考研信息网_【高考、考研党的福利】使用Python爬取全国高校及GIS/RS专业信息【附代码和Excel】...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复