python 中国大学排名爬虫

首先,给一个最好大学网URL:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html,

点击这里进入

.

功能描述

输入:大学排名URL链接

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

技术路线:requests‐bs4

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

定向爬虫可行性

在最好大学网点击右键,查看源代码,Ctrl+F搜索清华大学,可以到与每一个大学额相关对应的代码部分,如下图:

可以看到这段代码是使用tr标签来索引的一段信息,从代码段可以看到相关大学的排名,名称和总分信息,因此可以实现定向爬虫。

此外还要注意该网站是否提供了robots协议的约定:

可以手工查看是否符合:http://www.zuihaodaxue.cn/robots.txt,可以发现该网站并不存在,说明该网站没有对爬虫作相关限制。

程序的结构设计

步骤1:从网络上获取大学排名网页内容 getHTMLText()

步骤2:提取网页内容中信息到合适的数据结构 fillUnivList()

步骤3:利用数据结构展示并输出结果 printUnivList()

直接上代码:

导入相关库:

import requests

from bs4 import BeautifulSoup

import bs4

编写函数

getHTMLText()

def getHTMLText(url):

try:

r = requests.get(url, timeout=30)

r.raise_for_status()

r.encoding = r.apparent_encoding

return r.text

except:

return ""

编写函数

fillUnivList()

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])

编写函数

printUnivList()

def printUnivList(ulist, num):

tplt="{0:^10} {1:{3}^8} {2:^10}"

print("{0:^8} {1:{3}^8} {2:^8}".format("排名","学校名称","总分", chr(12288)))

for i in range(num):

u = ulist[i]

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

中文对齐问题原因及解决方案

① 中文对齐原因:

② 解决方案:

利用chr(12288)修改输出格式。

运行结果:

完整程序代码:

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):

tplt="{0:^10} {1:{3}^8} {2:^10}"

print("{0:^8} {1:{3}^8} {2:^8}".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, 20)

main()

python中国大学排名爬虫写明详细步骤-python中国大学排名爬虫相关推荐

  1. python中国大学排名爬虫写明详细步骤-Python爬虫——定向爬取“中国大学排名网”...

    内容整理自中国大学MOOC--北京理工大学-蒿天-Python网络爬虫与信息提取 相关实战章节 我们预爬取的url如下 网页节选 在浏览器中读取网页源代码 可以 发现表格数据信息是直接写入HTML页面 ...

  2. python中国大学排名爬虫写明详细步骤-Python爬虫--2019大学排名数据抓取

    Python爬虫--2019大学排名数据抓取 准备工作 输入:大学排名URL连接 输出:大学排名信息屏幕输出 所需要用到的库:requests,bs4 思路 获取网页信息 提取网页中的内容并放到数据结 ...

  3. python中国大学排名爬虫写明详细步骤-Python之爬虫-中国大学排名

    #!/usr/bin/env python # coding: utf-8 import bs4 import requests from bs4 import BeautifulSoup # 通过传 ...

  4. python中国大学排名爬虫写明详细步骤-python网络爬虫入门实例:中国大学排名定向爬虫...

    中国大学排名定向爬虫的 设计和实现 一.环境安装: 1.选择一个适合自己的IDE(以下代码用Jupyter Notebook编写) 2.打开cmd,安装requests库和beautifulsoup4 ...

  5. python中国大学排名爬虫写明详细步骤-python爬虫爬取2020年中国大学排名

    from bs4 import BeautifulSoup # 网页解析 获取数据 import re # 正则表达式 进行文字匹配 import urllib.request, urllib.err ...

  6. python中国大学排名爬虫写明详细步骤-Python爬虫 2020中国大学排名

    爬取中国大学排名 request 获取 html beautiful soup 解析网页 re 正则表达式匹配内容 新建并保存 excel 1 2 3 4 -*- codeing = utf-8 -* ...

  7. python官网的sdk下载详细步骤-Python SDK(beta)

    Python SDK(beta) 更新时间:2018-03-23 17:26:00 概述 本文结合Link Develop,详细介绍如何基于Python SDK,实现物联网设备的设备注册.属性上报.事 ...

  8. python中国大学排名爬虫写明详细步骤-【Python爬虫】从html里爬取中国大学排名...

    from bs4 import BeautifulSoup import requests import bs4 #bs4.element.Tag时用的上 #获取网页页面HTML def getHTM ...

  9. python官网的sdk下载详细步骤-Python SDK

    下载地址 IMM Service 的 Python SDK 让开发人员可以非常方便地使用 Python 操作阿里云智能媒体管理服务. 已经开源到github. 操作步骤 为快速开始使用 IMM Ser ...

最新文章

  1. ubuntu 在 rc.local 里添加了命令为什么无法执行
  2. 与服务器交互的分页组件PageComponent
  3. 又一个高等级数据中心着火了!
  4. AI:2020年6月21日北京智源大会演讲分享之09:20-09:40黄铁军教授《智源进展报告》
  5. java 树 右键菜单_VUE实现Studio管理后台(八):用右键菜单contextmenu,编辑树形结构...
  6. 【例4-4】最小花费
  7. 内蒙古银行银行招聘计算机研究生,内蒙古银行招聘公告
  8. Java未来路在何方?图文详解!
  9. es xxx_by_query
  10. winserver2008/2008R2 AD域控/DNS环境搭建详细步骤
  11. AcWing 166. 数独
  12. ubuntu系统安装初始化脚本
  13. 【回归预测】基于matlab Logistic混沌映射改进的麻雀搜索算法优化BP神经网络回归预测【含Matlab源码 1552期】
  14. UNIX 环境高级编程读书笔记(1)
  15. SAP PO中如何打印预览,找到Message type以及找到驱动程序和Form输出程序
  16. 2021-05-02 收心继续
  17. WDK10编译出最适合申请WHQL认证的驱动
  18. php tps,tps是啥
  19. 金融科技大数据产品推荐:荣之联·风报—人工智能企业情报分析系统
  20. 如何画Flot折线图

热门文章

  1. Android自定义控件属性的使用
  2. Oracle数据库知识要点
  3. 预备作业02 20162316刘诚昊
  4. return、break、continue区别以及作用范围
  5. Centos7 关闭防火墙(转)
  6. Apache+Tomcat +mod_proxy集群负载均衡及session
  7. java.math.BigDecimal保留两位小数,保留小数,精确位数
  8. FindStringExact
  9. poj 3026 (最小生成树)
  10. boost 库 enable_shared_from_this 实现原理分析