云南各大学专业爬取

														**大学专业爬取**

# -- coding: utf-8 --
“”"
Created on Fri Jun 21 12:43:08 2019

@author: Administrator
“”"

import requests
from pyquery import PyQuery as pq
import csv

def get_doc(url):
“”"
获取一页的网页源码信息
“”"
headers = {
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36’}
html = requests.get(url,headers=headers)
doc = pq(html.text)
return doc

def save_file(text,name):

"""
写文件的操作,这里使用的追加的方式来写文件
"""
with open(str(name) + '.csv','a') as f:
    writer = csv.writer(f)
    writer.writerow(text)

def Profession_Url(url_detail):#产生专业的url
#url_detail指的是当前大学的URL
doc_univer = get_doc(url_detail)#产生当前大学页面的pyquery对象
item_url = []
for index in doc_univer(’.sm_nav.bk .witdh_500 a’).items():
item_url.append(index.attr(‘href’))
return item_url[3]#要获取的专业的URL

def Profession_Info(item_url,name):#把专业明细写到一个文件中
professional = []
doc_profession = get_doc(item_url)#通过专业URL获取专业页面的pyquery对象
edu_level = [doc_profession(’.jjArea .content_Box .plan_con h4>.net_blue’).text()]
#edu_level获取本科或专科
save_file(edu_level,name)#填写本科或者专科
dl_list = doc_profession(’.jjArea .content_Box .plan_con dl’).items()#获取各专业的pyquery对象
for dl in dl_list:#各专业的list,一个学术类别下对应多个专业
Academic = dl(‘dt’).text()#先取出学术类别
save_file([Academic],name)#把学术类别写进去
span_list = dl(‘dd span’).items()#每个专业
professional = []
for span in span_list:#每个学术类别下对应的专业列表
professional.extend([span(‘a’).text()])
save_file(professional,name)#各个专业形成一个列表然后写进去

def main():
url = ‘http://college.gaokao.com/schlist/a26/p
for i in range(1,3):#总共两页
url = url + str(i)
University = []
University1=[]
doc = get_doc(url)#主页面的url,形成pyquery对象
Info_List = doc(’.scores_List>dl’).items()#一页中的每个大学列表对象,这里是迭代器
for lis in Info_List:
name = [lis(‘dt>.blue’).attr(‘title’)]#获取每个大学的名字,每个lis就是一个大学部分
University.extend(name)
url_detail = lis(‘dt>.blue>a’).attr(‘href’)#获取当前大学的URL
item_url = Profession_Url(url_detail)#通过当前大学URL产生要查询专业的url
Profession_Info(item_url,name)#写学术级别,专业类别,各专业类别下的各专业
#把一个大学的专业信息写进name的表中
University_Info = lis(‘dd ul li’).items()#获取大学的相关信息
for li in University_Info:
University.extend([li.text().split(’:’,1)[1]])
#注意这里是中文的冒号
University1.append(University)#每个循环都是一个列表,每个列表都是一个大学
#这样University1就是一个二维的列表
University = []#每次循环都要清空
title = [‘大学’,‘高校所在地’,‘院校特色’,‘高校类型’,‘高校隶属’,‘高校性质’,‘学校网址’]
save_file(‘daxue’,title)#先写标题
for j in range(len(University1)):
save_file(‘daxue’,University1[j])#写内容

if name ==‘main’:
main()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值