爬虫小例

中国大学排名爬虫

输入:大学排名URL链接

输出:大学排名信息的屏幕输出(排名,大学名称,总分)

技术路线:requests-bs4

定向爬取:仅对输入URL进行爬取,不进行扩展爬取

程序的结构设计

  • 从网络上获取大学排名网页内容   getHTMLText()
  • 提取网页内容中信息到合适的数据结构    fillUnivList()
  • 利用数据结构展示并输出结果    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:
        if isinstance(tr,bs4.element.Tag):
            tds = tr(‘td‘)
            ulist.append([tds[0].string,tds[1].string,tds[3].string])

def printUnivList(ulist,num):
    print(‘{:^10}\t{:^6}\t{:^10}‘.format(‘排名‘,‘学校名称‘,‘总分‘))
    print(‘suc‘+str(num))
    for i in range(num):
        u = ulist[i]
        print(‘{:^10}\t{:^6}\t{:^10}‘.format(u[0],u[1],u[2]))

def main():
    uinfo = []
    url = ‘http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html‘
    html = getHTMLText(url)
    fillUnivList(uinfo,html)
    printUnivList(uinfo,20)  #打印20所大学的信息

main()
时间: 2024-08-11 06:20:57

爬虫小例的相关文章

xpath爬虫小例

刚刚接触爬虫,马上用xpath对最近很关注的我的手机安卓6.0rom消息和某论坛当天新帖进行爬取.应该算是我第一个真正意义上的爬虫代码了,很简短. 电脑系统:win10旗舰版 运行环境:python2.7.10+pycharm5.0.1 实现功能:定向爬虫 1 #-*-coding:utf-8-*- 2 from lxml import etree 3 import requests 4 5 def spider_ROM(url): 6 html = requests.get(url) 7 se

福利贴——爬取美女图片的Java爬虫小程序代码

自己做的一个Java爬虫小程序 废话不多说,先上图. 文件夹命名是用标签缩写,如果大家看得不顺眼可以等下载完成后手动改一下,比如像有强迫症的我一样... 这是挂了一个晚上下载的总大小,不过还有很多因为一些问题没有遍历下载到,而且会产生很多空文件,最下面我附带了一个递归删除空文件夹的小程序代码. 接下来是文件夹内部~ 图片存放位置默认为d:\picture,可在程序中更改,main函数的开头就是,有注释.爬取的网站为http://www.mmonly.cc/,大家有更好的资源网站可以私我. 爬虫源

基于webmagic的爬虫小应用--爬取知乎用户信息

听到“爬虫”,是不是第一时间想到Python/php ? 多少想玩爬虫的Java学习者就因为语言不通而止步.Java是真的不能做爬虫吗? 当然不是. 只不过python的3行代码能解决的问题,而Java要30行. 这里推荐大家一个大牛做的java爬虫框架 [WebMagic] 文档简单易懂!java爬虫开发的福利啊! 一起来动手做一个小应用吧! 爬虫小应用–知乎用户信息 爬虫思想有3步 1. 抽取目标链接 2. 抽取需要的信息 3. 处理数据 一. 抽取目标链接 (确定入口地址,这里的入口是ht

新版API WordCount 小例 及如何导入jar包

WordCount: 简单解析wordcount小例子的代码,对应于新版的API进行处理. import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.examples.WordCount.TokenizerMapper; import org.apache.hadoop.fs.Path; im

使用libcurl下载文件小例

libcurl是一个很强大的开源网络处理库,支持包括HTTP.HTTPS.FTP--一系列网络协议.用它来进行HTTP的get\post 或者下载文件更是小菜一碟,chrome内核都用到了它,本文主要讲解一个使用curl下载文件的小例. 首先是去下载curl的最新源代码,然后编译成动态库或者静态库:然后把头文件和库文件拿出来加入到我们自己的工程中,引用声明: #include "curl.h" #ifdef _DEBUG #pragma comment(lib, "../De

分享一个Duilib配置的下载器小例

使用DuiLib开发Windows界面实在是太简单了,对于MFC程序员真的是脱离苦海,控件自绘什么的GDI\GDI+真要把人搞死.DuiLib是国内一个非常有名的开源界面库,目前很多软件都是用了它(百度卫士.杀毒.PPS--),感谢开源的前辈们. 扩展列表控件的滚动消息,加上一个定时器,让他可以自动滚动一段再停下来. void CDownloadListUI::DoEvent( TEventUI& event ) { if( !IsMouseEnabled() && event.T

dwr框架异步调用简单小例

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架.可以轻松实现用js直接调用java方法. 通过一个小例子来演示一个dwr的基本使用: ①. 首先肯定要创建一个web project的,然后拷贝dwr.jar到WEB-INF\lib目录下 ②. 修改web.xml文件,添加dwr servlet配置 <servlet> <servlet-name>dwr-invoker</servlet-name>

一个python爬虫小程序

起因 深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么“装饰器”啊.“多线程”啊都没有学到. 想到廖雪峰大神的python教程很经典.很著名.就想找找有木有pdf版的下载,结果居然没找到!!CSDN有个不完整的还骗走了我一个积分!!尼玛!! 怒了,准备写个程序直接去爬廖雪峰的教程,然后再html转成电子书. 过程 过程很有趣呢,用浅薄的python知识,写python程序,去爬python教程,来学习python.想想有点小激动…… 果然python很是方便,5

python3 爬虫小例子

#!/usr/bin/env python# -*- coding: utf-8 -*- import sys,reimport urllib.request,urllib.parse,http.cookiejar class myW3():    def login(self):        'post 数据'        data = {"uid":self.uid,'password':self.password,'actionFlag':'loginAuthenticate