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

    目标网站:http://www.zuihaodaxue.com/zuihaodaxuepaiming2016.html

    目的:爬取目标网站上中国大学的排名

    代码如下:

     1 import requests#引入requests库
     2 from bs4 import BeautifulSoup
     3 import bs4#引入bs4库
     4 def getHTMLText(url):#获得网页内容的函数
     5     try:
     6         r=requests.get(url,timeout=30)#得到网页内容
     7         r.raise_for_status()#来产生异常信息,在方法内部判断r.status_code是否等于200,不需要增加额外的if语句,该语句便于利用try-except进行异常处理
     8         r.encoding=r.apparent_encoding#修改编码
     9         return r.text#返回文本类
    10     except:
    11         return ""
    12     
    13 def fillUnivList(ulist,html):#将页面放到一个列表中的函数
    14     soup = BeautifulSoup(html,"html.parser")#煲汤....
    15     for tr in soup.find('tbody').children:#遍历查找tbody标签
    16         if isinstance(tr,bs4.element.Tag):#类型判断,如果不是tag类型,将被过滤
    17             tds = tr('td')#将td标签存为一个列表类型tds
    18             ulist.append([tds[0].string,tds[1].string,tds[2].string])#增加对应字段
    19             
    20 
    21 def printUnivList(ulist,num):#输出打印函数,格式化输出
    22     print("{:^10}	{:^6}	{:^10}".format("排名","学校名称","总分"))#打印表头
    23     for i in range(num):#采用循环实现
    24         u= ulist[i]
    25         print("{:^10}	{:^6}	{:^10}".format(u[0],u[1],u[2]))
    26 
    27 def writetxt(ulist,num):#储存到txt文件,E盘下自动生成中国大学排名的txt文件
    28     with open('E:中国大学排名.txt','a',encoding='utf-8') as f:
    29         for i in range(num):
    30             u= ulist[i]
    31             f.write("{:^10}	{:^6}	{:^10}".format(u[0],u[1],u[2]))
    32             f.write('
    ')
    33     f.close()
    34 
    35        
    36 def main():#主函数
    37    uinfo = []#列表
    38    url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2016.html'#给定链接
    39    html=getHTMLText(url)
    40    fillUnivList(uinfo,html)
    41    printUnivList(uinfo,310)
    42    writetxt(uinfo,310)
    43 main()

    结果如下:

    第一次写的爬虫,留作纪念

  • 相关阅读:
    【LOJ#6277】数列分块1
    【LOJ6284】数列分块8
    【洛谷P3275】糖果
    【洛谷P3810】陌上花开
    【洛谷P1052】过河 离散化+dp
    【洛谷P2042】维护数列
    【模板】文艺平衡树
    【洛谷P4145】花神游历各国
    【洛谷P4878】布局
    hdu 5748(LIS)
  • 原文地址:https://www.cnblogs.com/yinbiao/p/8438847.html
Copyright © 2011-2022 走看看