网络爬虫-抓取全国高校名单(分区域)
参考链接: 从人人网获取全国中学信息(省市县)
主要代码为参考+改进上面博客的原创,在人人网的select弹框form里面抓取出全国高校名单.
主要代码块如下
def getProvinceData():content = open("./cityArray.js", encoding='utf-8')# 分离出市级id和名称partten = re.compile("(\d+):([\w\d\\\\]+)")provinceList = []for line in content.readlines():data = partten.findall(line)citys = []province = {}for s in data:# print(s)if len(s[0]) == 4: # 城市# print s[0],s[1].decode('unicode_escape')citys.append({"id": s[0], "name": unescape(s[1])})province_id = len(data[0][0]) == 4 and data[0][0] or data[0][0][0:4]# 只处理列表中的几个省if int(province_id) in provinceMap.keys():province['id'] = province_idprovince['name'] = provinceMap[int(province_id)]province['citys'] = citysprovinceList.append(province)return provinceListdef getTownHtml(town_id, scoolType):try:url = "http://support.renren.com/{0}/{1}.html".format(scoolType, town_id)# print "请求网络数据:",urla = requests.get(url, headers=headers).textprint(a)return aexcept:print("网络错误!")passdef getCitySchool(content):selector = etree.HTML(content)# 某个城市的中学列表# 县区的列表townlist = selector.xpath('//ul')# print(townlist)d = {}for town1 in townlist:name1 = town1.xpath('./@id')[0].strip()if name1 == "schoolCityQuList":d["city"] = []city1 = town1.xpath('.//a')for y in city1:y1 = etree.tostring(y, encoding='utf-8', pretty_print=True, method="html").decode(encoding="utf-8")d["city"].append({"name": re.findall('>(.*?)</a>', y1)[0],"id": re.findall("'city_qu_(.*?)'", y1)[0]})continuecitySchoolData = []townLiList = town1.xpath('.//a')for town in townLiList:p = {}town = etree.tostring(town, encoding='utf-8', pretty_print=True, method="html").decode(encoding="utf-8")print(town)# input()try:p['name'] = re.findall('>(.*?)</a>', town)[0]except:p['name'] = re.findall('>(.*?)\n', town)[0]p['id'] = re.findall('href="(.*?)"', town)[0]citySchoolData.append(p)for x in d.get('city'):if name1.replace('city_qu_', '') == x.get('id'):x['schoolList'] = citySchoolDatareturn d.get('city')def getUnicodeStr(s):name = []for word in s.split(";"):try:name.append(chr(int(word[2:])))except:passreturn "".join(name)
结果展示(最终格式为json):
Ending
Github传送门
持续更新ing (欢迎各种star与fork)
联系方式: 442891187(QQ)
如有权益问题可以发私信联系我删除
网络爬虫-抓取全国高校名单(分区域)相关推荐
- 基于Thinkphp5+phpQuery 网络爬虫抓取数据接口,统一输出接口数据api
TP5_Splider 一个基于Thinkphp5+phpQuery 网络爬虫抓取数据接口 统一输出接口数据api.适合正在学习Vue,AngularJs框架学习 开发demo,需要接口并保证接口不跨 ...
- python展示全部好友_利用Python网络爬虫抓取微信好友的签名及其可视化展示
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
- C#网络爬虫抓取小说
C#网络爬虫抓取小说 2017-09-05DotNet (点击上方蓝字,可快速关注我们) 来源:苍 cnblogs.com/cang12138/p/7464226.html 阅读目录 1.分析html ...
- python爬虫微信朋友圈怎么发文字_如何利用Python网络爬虫抓取微信朋友圈的动态(上)...
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- python爬虫好友聊天记录_利用Python网络爬虫抓取微信好友的签名及其可视化展示...
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
- 用python爬虫下载视频_使用Python编写简单网络爬虫抓取视频下载资源
我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚 ...
- python抓取微信朋友圈动态_2018最全如何利用Python网络爬虫抓取微信朋友圈的动态...
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- python爬虫能爬取微信密码吗_如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例...
今天我们继续focus on微信,不过这次给大家带来的是利用Python网络爬虫抓取微信好友总数量和微信好友男女性别的分布情况.代码实现蛮简单的,具体的教程如下. 相信大家都知道,直接通过网页抓取微信 ...
- 2018最全如何利用Python网络爬虫抓取微信朋友圈的动态
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
最新文章
- 提高性能:用RequireJS优化Wijmo Web页面
- java gps 距离计算_java计算两个GPS经纬度之间的距离(转)
- android 文字控件闪烁
- android项目编译时提示找不到*.apk(could not find the *.apk)
- Spark Streaming 执行流程
- ODBC驱动,没装怎么办
- c语言二叉树学生成绩,二叉树C语言
- 一起来学ES —— 浅谈Nested结构
- 会做饭的机器人曰记_做饭机器人作文作文300字
- 基于注意力机制的循环网络进行层级性多元标签文本分类
- python调用turtle(海龟画图),画一个正方形
- 一篇文章了解爬虫技术现状
- l计算机中数的表示教案,计算机一级B第一章教案汇总.doc
- php判断caj文件页数,CAJ转Word有没有既免费还不限制页数的转换工具?
- DHCP 解决单位网络私接路由器的办法
- 真心话大冒险的暴强回复
- 我为什么要写博客,写博客的意义是什么??
- 前端vue导出Excel(多sheet)
- 5大电脑软件推荐!每一款都是精心挑选,良心推荐!
- 一个月过软考|软件设计师中级考试经验分享