python爬取中国大学_Python 3爬取全国高校基本信息

最近接了一个单子,是爬取全国高校的基本信息,高校名字,高校层次,高校地区,招生办电话,招生办官网~

镇楼图如下:

信息源网址是:https://gkcx.eol.cn/

开发环境:python3.6(最新3.7也可以的) +pycharm

第三放库:request(网页级请求库),pymysql(l操作mysql库),json(python和json互转的库)其余库自带

思路就参考前面同前面的文章(最近越来越懒了,请见谅博客都没怎么写了,思路也是...被高数折磨的哭唧唧的~),代码都差不多,只是请求地址变了,思路也差不多,思路参考请点击传送门:传送门

接下来就公布源码:点击Github下载,传送门:传送门

或者观看博客也行,如下:

# -*- coding: utf-8 -*-

# @Filename: 全国高校数据信息.py

# @Time : 2019/7/19 12:31

# @Author : LYT

"""

https://static-data.eol.cn/www/school/140/info.json

"""

import requests,re,xlwt,json,pymysql

def Get_html(url):

try:

headers = {

'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3676.400 QQBrowser/10.4.34"

}

r=requests.get(url,headers=headers)#带请求参数params

r.encoding=r.apparent_encoding

print("请求服务成功!")

#print(r.text)

return r.text

except:

print("请求失败")

def Get_info(url,id):

url_api = "https://static-data.eol.cn/www/school/"#请求ajax api

url=url_api+str(id)+"/info.json"

basic_info=[]#存高校基本信息

# *******************************************#

# ****************数据库配置******************#

# *******************************************#

# *******************************************##

try:

conn = pymysql.connect(

host="localhost", # mysql本机连接 或者写127.0.0.1也可以连接远程数据库

user="test", # 数据库用户名称

passwd="123", # 密码

db="高校基本信息", # 连接的数据库名字

port=3306 # 端口

)

except pymysql.Error as e:

print("连接失败:%s" % e)

cursor = conn.cursor()

name=""

infoes=json.loads(Get_html(url))

name=infoes['name']

basic_info.append(infoes['name'])#学校名字

level=""#高校层次

if infoes['f985']=='1'and infoes['f211'] == '1': level += "985 211"#判断高校层次

elif infoes['f211'] == '1': level +="211"

else:level+=infoes['level_name']

basic_info.append(level)

basic_info.append(infoes['type_name'])#高笑类型

loacl=infoes['province_name']+infoes['town_name']#高校地区

basic_info.append(loacl)

basic_info.append(infoes['phone'])#招生办电话

basic_info.append(infoes['site'])#招生办官网

print(basic_info)

print("***********正在写入数据库%s高校基本信息数据**********" % name)

sql= "insert into 全国高校基本信息(学校名称,高校层次,高校类型,高校地区,招生办电话,招生办官网)values(%s,%s,%s,%s,%s,%s)"

cursor.execute(sql,(basic_info))

conn.commit() # 数据库数据提交

conn.close() # 关闭数据库连接

print(name+"数据已经保存完毕!")

def main():

# *******************************************#

# ****************数据库配置******************#

# *******************************************#

# *******************************************##

try:

conn = pymysql.connect(

host="localhost", # mysql本机连接 或者写127.0.0.1也可以连接远程数据库

user="test", # 数据库用户名称

passwd="123", # 密码

db="高校基本信息", # 连接的数据库名字

port=3306 # 端口

)

except pymysql.Error as e:

print("连接失败:%s" % e)

cursor = conn.cursor()

sql = """create table %s(

id int(20) not null primary key auto_increment,

学校名称 varchar(255),

高校层次 varchar(255),

高校类型 varchar(255),

高校地区 varchar(255),

招生办电话 varchar(255),

招生办官网 varchar (255))"""

cursor.execute(sql % ("全国高校基本信息"))

conn.commit() # 数据库数据提交

for id in range(30,3000):

try:

url="https://gkcx.eol.cn/school/"+str(id)

print(url)

Get_info(url,id)

except:

continue

if __name__ == '__main__':

main()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值