python网络爬虫---中国大学排名

本例利用爬虫从一个网址中获取中国大学排名,然后将其输出

import requests

from bs4 import BeautifulSoup

import bs4

from time import clock


  # 获取网页信息的通用框架

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, 'lxml')

    for tr in soup.find('tbody').children:

        # 检查网页代码可以发现数据都储存在tboyd标签中,这里需要对tbody的儿子节点进行遍历

        if isinstance(tr, bs4.element.Tag):

            # 检测标签类型,如果不是bs4库支持的Tag类型,就过滤掉,这里需要先导入bs4库

            tds = tr('td')

            # 解析出tr标签中的td标签后,将其储存在列表tds中

            ulist.append([tds[0].string, tds[1].string, tds[3].string])

            # 我们需要的是排名、学校名称和总分

# 格式化后,输出列表数据

def printUnivList(ulist, num):

    tplt = '{:<3}\t{:<13}\t{:<10}'

    # 定义输出模板为变量tplt,\t为横向制表符,<为左对齐,10为每列的宽度

    print(tplt.format('排名','学校名称','总分'))

    # format()方法做格式化输出

    for i in range(num):

        u = ulist[i]

        print(tplt.format(u[0],u[1],u[2]))

def main():

    uinfo = []

    url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2017.html'

    html = getHtmlText(url)

    fillUnivList(uinfo, html)

    printUnivList(uinfo, 10)

    # 选取前10所学校信息

main()

clock()

print('运行时间 %ss'%clock())

运行截图


大学排名
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我负丹青 冯盾 吴冠中先生走了,中国美术进入了寒冬。上网浏览了先生的画作,受到了强烈刺激。清新干净的笔墨,超逸空灵...
    穷且益坚不坠青云之志阅读 5,013评论 0 0
  • 目标一:自己吃饭 目标二:收拾玩具 目标三:一言不合就生气 小崽子今天玩完了图形板之后没有收,去别的地方溜达去了,...
    小惠_a7bf阅读 695评论 0 0
  • 简书: 交流故事,沟通想法 知乎:与世界分享你的知识,经验和见解 知乎经过5年的发展,已经形成了...
    WLENNON阅读 14,727评论 61 127
  • 女主角 林紫薇 2000年9月12日 处女座 14岁 爱好:跳舞,唱歌等无所不能。 喜欢的颜色:蓝色,白色,黑色 ...
    蓝色冰雪阅读 3,798评论 0 0
  • 我对画画很有兴趣,爸爸见我爱画画,给我报了个美术班,经过差不多一年的时间,感觉画画很有意思,刚开始来学画觉...
    仇昱淞阅读 1,917评论 0 0