Python爬虫实战:2017中国最好大学排名
抓取内容:
从最好大学网上抓取中国前10的大学排名、大学名称、总分,并数据格式左对齐。 http://www.zuihaodaxue.cn/zuihaodaxuepaiming2017.html
首先,看下网站的Robots协议,没有找到相关协议,可以抓取。 http://www.zuihaodaxue.cn/robots.txt
接下来开始整理思路:
- 获取网页信息
- 填充列表数据
- 输出列表数据,并进行格式化
- 输出结果
完整代码:
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, '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 = '{:<10}\t{:<10}\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()
运行结果:

操作环境:Mac,Python 3.6,PyCharm 2016.2
参考资料:中国大学MOOC课程《Python网络爬虫与信息提取》
----- End -----
更多精彩内容关注我公众号:杜王丹
作者:杜王丹,互联网产品经理

Python爬虫实战:2017中国最好大学排名的更多相关文章
- python爬虫抓取中国最好大学排名1 清华大学 北京 94.0 100.0 97.70% 清华大学 2 北京大学
import requests from bs4 import BeautifulSoup import bs4.element r=requests.get("http://www.zui ...
- Python爬虫实战七之计算大学本学期绩点
大家好,本次为大家带来的项目是计算大学本学期绩点.首先说明的是,博主来自山东大学,有属于个人的学生成绩管理系统,需要学号密码才可以登录,不过可能广大读者没有这个学号密码,不能实际进行操作,所以最主要的 ...
- 【图文详解】python爬虫实战——5分钟做个图片自动下载器
python爬虫实战——图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识,(没看的先去看!!)大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap sho ...
- Python爬虫实战(4):豆瓣小组话题数据采集—动态网页
1, 引言 注释:上一篇<Python爬虫实战(3):安居客房产经纪人信息采集>,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功.本篇是针对动态网页的数据 ...
- Python爬虫实战(2):爬取京东商品列表
1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反 ...
- Python爬虫实战四之抓取淘宝MM照片
原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...
- Python爬虫实战---抓取图书馆借阅信息
Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...
- Python爬虫实战八之利用Selenium抓取淘宝匿名旺旺
更新 其实本文的初衷是为了获取淘宝的非匿名旺旺,在淘宝详情页的最下方有相关评论,含有非匿名旺旺号,快一年了淘宝都没有修复这个. 可就在今天,淘宝把所有的账号设置成了匿名显示,SO,获取非匿名旺旺号已经 ...
- Python爬虫实战六之抓取爱问知识人问题并保存至数据库
大家好,本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表 ...
随机推荐
- 使用docker搭建hadoop环境,并配置伪分布式模式
docker 1.下载docker镜像 docker pull registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop:latest 注:此镜像为阿里云个人上传镜 ...
- PHP错误提示的关闭方法详解
关闭PHP错误脚本提示是程序上线了必须做的一件事情,就是不管程序怎么报错我们都不能让错误日志在服务器上给大家看到,下面我来总结两种关闭PHP错误脚本提示的具体方法 最简单的办法就是直接在php ...
- Mac svn使用学习-1-简介
在Windows环境中,可以使用TortoiseSVN来搭建svn环境.但是由于Mac自带了svn的服务器端和客户端功能,因此可以直接使用svn功能. svn即subversion,Subversio ...
- 评定星级的前端显示js
五颗星的星级评定: 说明:假设是利用三种图片显示星级评定,即 1.满亮的星 2.半亮的星星 3.不亮的星星: 满分是5分:(此处当然可以作为一个参数可变 函数传入参数grade表示当前分值. func ...
- iOS9中http不能使用的解决
用xcode7写程序的时候发现webview不能显示http的链接网页,发现原来是由于ios9的一个新特性,iOS9引入了新特性App Transport Security (ATS),新特性要求Ap ...
- 02-Maven安装配置
1.Maven下载 2.Maven依赖 3.安装Maven 4.Maven目录
- 20155211 Exp5 MSF基础应用
20155211 Exp5 MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode? exploit:漏洞攻击.一个exploit程序肯定会触发系统的一个或多个 ...
- CISCN 应用环境相关指令备忘录
1 - 关于Python环境的 使用Anaconda2管理Python环境 1.1 - 安装 官网下载安装包下载. 1.2 - 创建Python环境 localhost:template mac$ c ...
- linux & windows下重启oracle
Linux:方法1 用root以ssh登录到linux,打开终端输入以下命令: cd $ORACLE_HOME #进入到oracle的安装目录 dbstart #重启服务器 lsnrctl start ...
- 【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具
本节介绍如何自己DIY一个数据库管理工具,可以在页面输入sql 进行简单的增删改查操作. 首先,找到xampp的安装目录,打开htdocs: 新建一个php文件,名称为 mysqladmin.php ...