记录爬取中华人民共和国教育部的网站有感

记录爬取中华人民共和国教育部的网站有感:

其实也不算爬,只能说是获取了,哈哈

吐槽:说实话,从来没见过如此坑的网站,我也是服了,花了2天的时间去爬国外大学的信息,网站的数据几乎没有规律,而且最坑的是编码,也不知道是什么鬼,网站一行数据,编码貌似不一样,还有符号,像一个问号,有的是全角的,有的是半角的,真特么牛,我就想问体制里的那些做技术的,你是故意要这样的呢,还是拿了钱不干事

需要获取的信息:

爬取国外大学信息 - 国籍 - 学校英文名称 - 学校中文名称 - 城市 - 官网 - 备注

用到的工具:

  • pycharm
  • mysql

来说下这网站数据怎么弄下来的:

这个网站的数据实在是没啥子规律,花了我2天的时间,才算是把需要的数据爬了下来,先看一下要爬取的初始网页:jsj.edu.cn/n1/12018.sht


记录爬取中华人民共和国教育部的网站有感_第1张图片


这些加*网站进去之后,格式基本是一样的,对,是的,是基本,不全都一样,有字段有点不同的,也是服气,不过问题不大

其他的格式就是千奇百怪了,基本你想用一样的代码解析出来是不可能的,怎么办呢,复制粘贴来的快捷,但是复制粘贴的数据不规范,我写了一个通用的清洗数据的脚本,对其进行清洗,并存储到数据库

这里边最坑的就是编码问题,拿来的数据有的可以存到数据库,有的编码不一样,显示存储错误,怎么解决,我用了好几种方式:

  • 我先使用的是将编码转成需要的编码,(使用u“%s",%a)但是有一些特殊的字符不行,转码都错,之后又加了一种方式
  • 使用re正则的sub进行替换,将一些不需要的特殊字符替换掉,这样子写能换掉一部分,之后又出了问题
  • 再用的是split进行切割,先找到哪个特殊字符(这里特殊字符不是很多,就那么几个),然后使用这个特殊字符来切割,形成list形式,之后使用“”.jion(list),将列表拼接成str形式就可以了

需要获取的信息:

爬取国外大学信息 - 国籍 - 学校英文名称 - 学校中文名称 - 城市 - 官网 - 备注

用到的工具:

  • pycharm
  • mysql

看一下结果图:

数据表从左到右对应获取的信息


记录爬取中华人民共和国教育部的网站有感_第2张图片


虽然说这个网站很坑,但是也是因为有如此多的坑,爬这些信息的过程中,走过大量的坑,之后再遇到这样的问题就会知道如何更方便的处理

你可能感兴趣的:(记录爬取中华人民共和国教育部的网站有感)