记录爬取中华人民共和国教育部的网站有感
记录爬取中华人民共和国教育部的网站有感:
其实也不算爬,只能说是获取了,哈哈
吐槽:说实话,从来没见过如此坑的网站,我也是服了,花了2天的时间去爬国外大学的信息,网站的数据几乎没有规律,而且最坑的是编码,也不知道是什么鬼,网站一行数据,编码貌似不一样,还有符号,像一个问号,有的是全角的,有的是半角的,真特么牛,我就想问体制里的那些做技术的,你是故意要这样的呢,还是拿了钱不干事
需要获取的信息:
爬取国外大学信息 - 国籍 - 学校英文名称 - 学校中文名称 - 城市 - 官网 - 备注
用到的工具:
- pycharm
- mysql
来说下这网站数据怎么弄下来的:
这个网站的数据实在是没啥子规律,花了我2天的时间,才算是把需要的数据爬了下来,先看一下要爬取的初始网页:http://www.jsj.edu.cn/n1/12018.shtml
这些加*网站进去之后,格式基本是一样的,对,是的,是基本,不全都一样,有字段有点不同的,也是服气,不过问题不大
其他的格式就是千奇百怪了,基本你想用一样的代码解析出来是不可能的,怎么办呢,复制粘贴来的快捷,但是复制粘贴的数据不规范,我写了一个通用的清洗数据的脚本,对其进行清洗,并存储到数据库
这里边最坑的就是编码问题,拿来的数据有的可以存到数据库,有的编码不一样,显示存储错误,怎么解决,我用了好几种方式:
- 我先使用的是将编码转成需要的编码,(使用u“%s",%a)但是有一些特殊的字符不行,转码都错,之后又加了一种方式
- 使用re正则的sub进行替换,将一些不需要的特殊字符替换掉,这样子写能换掉一部分,之后又出了问题
- 再用的是split进行切割,先找到哪个特殊字符(这里特殊字符不是很多,就那么几个),然后使用这个特殊字符来切割,形成list形式,之后使用“”.jion(list),将列表拼接成str形式就可以了
需要获取的信息:
爬取国外大学信息 - 国籍 - 学校英文名称 - 学校中文名称 - 城市 - 官网 - 备注
用到的工具:
- pycharm
- mysql
看一下结果图:
数据表从左到右对应获取的信息
虽然说这个网站很坑,但是也是因为有如此多的坑,爬这些信息的过程中,走过大量的坑,之后再遇到这样的问题就会知道如何更方便的处理