python爬虫 --最好大学网

关于最好大学网的爬虫

暑期在家看了慕课的爬虫视频,然后练练手这是我的关于最好大学网的一次爬虫。新手上路,错误难免。
下面是我对这次爬虫的理解

一:关于最好大学网

最好大学网

在这里插入图片描述

二:下面代码

// Auther Dath
// 2019/7/23

import requests
import lxml
from bs4 import BeautifulSoup
import bs4
import pandas as pd


def GetHtmlText(url,headers):
    try:
        r = requests.get(url, headers)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "访问异常错误"

def GetUniverList(ulist,html):
    soup = BeautifulSoup(html,'lxml')
    for tr in soup.find('tbody').children:
        if isinstance(tr, bs4.element.Tag):  #筛选出bs4.element.Tag的类型
            tds = tr('td')
            ulist.append([tds[0].string, tds[1].string, tds[2].string, tds[3].string, tds[4].string, tds[5].string, tds[6].string, tds[7].string, tds[8].string, tds[9].string,
                          tds[10].string, tds[11].string, tds[12].string, tds[13].string])



    def WriteToFile(ulist):
    name = ['排名', '学校名称', '省市', '总分', '生源质量(新生高考成绩得分)', '培养结果(毕业生就业率)', '社会声誉(社会捐赠收入千元)',
            '科研规模(论文数量篇)','科研质量(论文质量FWC)','顶尖成果(高被引论文篇)', '顶尖人才(高被引学者人)', '科技服务(企业科研经费千元)',
            '成果转化(技术转让收入千元)', '学生国际化(留学生比例)']
    test = pd.DataFrame(columns=name, data=ulist)

    test.to_csv(r'C:\Users\Administrator\Desktop\最好大学网2019大学排名.csv', index=0)

def main():
    uinfo = []
    url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html'
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like G'
                             'ecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3704.400 QQBrowser/10.4.3587.400'}
    html = GetHtmlText(url,headers)
    GetUniverList(uinfo,html)
    WriteToFile(uinfo)

main()

三:代码结果

在这里插入图片描述
此次一共有549所大学

四:代码思路

	本次一共使用了三个函数GetHtmlText()

第一个函数GetHtmlText()函数获取网页的text信息
在这里插入图片描述
第二个函数GetUniverList()将需要的内容加入到一个二维列表中

在这里插入图片描述

第三个函数WriteToFile()将列表中的 内容写入csv文件
利用pandas库比较简单

// A code block
    test.to_csv(r'C:\Users\Administrator\Desktop\最好大学网2019大学排名.csv', index=0)

主函数main() 反应了代码的主要思路
其中 requests.get(url,headers)加入headers为了模拟浏览器上网

五:总结

第一次用csdn写博客,捣鼓了好久才写好,结果点错了没了,重新写了一份。搞得心态有点炸,没有刚开始的热情写了,所以布局啥的不大好勿怪

如果有更好的建议可以联系我,谢谢

下面是本次代码的结果csv文件 百度网盘分享
链接:https://pan.baidu.com/s/1eI9fi0U9d4i-CWOJImhUMA
提取码:y8df

发布了6 篇原创文章 · 获赞 3 · 访问量 685

猜你喜欢

转载自blog.csdn.net/weixin_41900803/article/details/96998364
今日推荐