一开始对于数据库使用原声sql语句创建和操作但是感觉不顺手(可能是因为平时py用得比java多)
所以对于数据库操作使用了sqlalchemy第三方库
models.py文件定义了创建数据库表的sqlalchemy语句以及实例化类,执行以下代码可以创建数据库
# engine = create_engine("数据库类型+数据库驱动://数据库用户名:数据库密码@IP地址:端口号/数据库?编码...", 其它参数)
engine = create_engine("mysql+pymysql://root:123456@localhost:3306/collegesandmajors",echo=True)
Base.metadata.create_all(engine)
程序启动时,该语句会自动执行,所以只需要保证有对应的数据库(名称与参数中相同),即可自动创建数据库表,创建结果如下图
运行主函数,修改for循环语句里的range值,即可爬取不同范围的院校
for i in range(2872, 2875):
有些学校可遇不可求,所以如果查询没有查到,会把院校的url地址存到wrong_colleges.txt文件里,文件生成在根目录下
with open('wrong_colleges.txt', 'a') as file:
file.write(url + str(i) + "学校基本信息错误")
file.write('\n')
也不知道文档能写啥了,改了参数爬就对了,之后对照日志在进行修改
所需依赖在requirements.txt里