zoukankan      html  css  js  c++  java
  • 中国大学排名定向爬虫

    功能描述:
    输入:大学排名URL链接
    输出:大学排名信息的屏幕输出(排名,大学名称,总分)
    技术路线:requests+bs4
    定向爬虫:仅对输入URL进行爬取,不扩展爬取

    程序的结构设计:
    步骤1:从网络上获取大学排名网页内容
    getHTMLText()
    步骤2:提取网页内容中信息到合适的数据结构
    fillUnivList
    步骤3:利用数据结构展示并输出结果
    printUnivList()

    import requests
    from bs4 import BeautifulSoup
    import bs4
    def getHTMLText(url):
        try:
            r = requests.get(url, timeout = 30)
            r.raise_for_status()
            r.encoding = r.apparent_encoding
            return r.text
        except:
            return ""
    def fillUnivList(uList, html):
        soup = BeautifulSoup(html, "html.parser")
        for tr in soup.find('tbody').children:  # 遍历tbody子节点列表
            if isinstance(tr, bs4.element.Tag): # 判断两个类型是否相同
                tds = tr('td')  # 等价于tds = tr.find_all('td'),返回一个列表
                uList.append([tds[0].string, tds[1].string, tds[3].string])
    def printUnivList(uList, num):
        tplt = "{0:^10}	{1:{3}^8}	{2:10}"   # 解决中文字符对齐问题
        print(tplt.format("排名", "学校名称", "总分", chr(12288)))
        for i in range(num):
            u = uList[i]
            print(tplt.format(u[0], u[1], u[2], chr(12288)))
    def main():
        uinfo = []
        url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html'
        html = getHTMLText(url)
        fillUnivList(uinfo, html)
        printUnivList(uinfo, 10)
    main()

    输出:

  • 相关阅读:
    文件打包下载
    DES加密解密
    jQuery实现表格拖动排序
    jQuery实现星星评分功能
    问卷调查功能中的题目编辑功能
    使用JS或jQuery模拟鼠标点击a标签事件
    zTree的使用
    给文本框添加模糊搜索功能(“我记录”MVC框架下实现)
    表达式计算器的实现
    asp.net几种开源上传控件,flash,ajax版,支持多文件
  • 原文地址:https://www.cnblogs.com/zhang-anan/p/8278664.html
Copyright © 2011-2022 走看看