Python爬虫--2019大学排名数据抓取

准备工作

输入:大学排名URL连接

输出:大学排名信息屏幕输出

所需要用到的库:requests,bs4

思路

获取网页信息

提取网页中的内容并放到数据结构中

利用数据结构展示并输出结果

程序设计

定义函数getHTMLText()获取网页信息

定义函数UnivList()放入数据结构

定义函数printUnivList()输出到屏幕

总体而言:

写出需要自定义的函数,制作出总体的框架

写出主函数框架,实现功能

最后调用函数

步骤

查看url源代码

分析源代码,查看需要爬取的内容在什么位置

从图片中可以看出,排名信息是在

具体的信息是在

标签内的string

定义函数getHTMLText

def getHMLText(url):

'''

获取url信息,输出url的内容,来抓取网页的信息

'''

try:

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

r.raise_for_status()

r.encoding = r.apparent_encoding

return r.text

except:

return "抓取失败!"

定义函数UnivList()

def UnivList(ulist, html):

'''

提取html中的数据,放入到ulist列表,完成数据提取

'''

soup = BeautifulSoup(html, "html.parser")

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

if isinstance(tr, bs4.element.Tag): # 判断tr的子节点是否为非属性字符串

tds = tr('td')

# print(tds)

# print('#' * 30)

# print(tds[0], tds[0].string)

# print('#' * 30)

# print(tds[1], tds[1].string)

# print('#' * 30)

# print(tds[2], tds[2].string)

# print('#' * 30)

# print(tds[3], tds[3].string)

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

定义函数printUnivList()

def printUnivList(ulist, num):

'''

将ulist列表信息打印,num表示打印前多少排名的学校

'''

print("{:^3} {:^10} {:^20} {:^30}".format("排名", "学校名称", "总分", '地址'))

for i in range(num):

u = ulist[i]

print("{:^3} {:^10} {:^20} {:^30}".format(u[0], u[1], u[2], u[3]))

主函数main()

def main():

'''

实现整个代码

'''

ulist = []

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

html = getHTMLText(url)

UnivList(ulist, html)

printUnivList(ulist, 100)

调用主函数

main()

完整代码

import requests

import bs4

from bs4 import BeautifulSoup

def getHMLText(url):

'''

获取url信息,输出url的内容,来抓取网页的信息

'''

try:

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

r.raise_for_status()

r.encoding = r.apparent_encoding

return r.text

except:

return "抓取失败!"

def UnivList(ulist, html):

'''

提取html中的数据,放入到ulist列表,完成数据提取

'''

soup = BeautifulSoup(html, "html.parser")

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

if isinstance(tr, bs4.element.Tag): # 判断tr的子节点是否为非属性字符串

tds = tr('td')

# print(tds)

# print('#' * 30)

# print(tds[0], tds[0].string)

# print('#' * 30)

# print(tds[1], tds[1].string)

# print('#' * 30)

# print(tds[2], tds[2].string)

# print('#' * 30)

# print(tds[3], tds[3].string)

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

def printUnivList(ulist, num):

'''

将ulist列表信息打印,num表示打印前多少排名的学校

'''

print("{:^3} {:^10} {:^20} {:^30}".format("排名", "学校名称", "总分", '地址'))

for i in range(num):

u = ulist[i]

print("{:^3} {:^10} {:^20} {:^30}".format(u[0], u[1], u[2], u[3]))

def main():

'''

实现整个代码

'''

uinfo = []

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

html = getHTMLText(url)

fillUnivList(uinfo, html)

printUnivList(uinfo, 100)

main()

python中国大学排名爬虫写明详细步骤-Python爬虫--2019大学排名数据抓取相关推荐

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

    python 中国大学排名爬虫 首先,给一个最好大学网URL:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html, 点击这里进入 . 功能描述 ...

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

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

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

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

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

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

  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爬虫入门【18】: 36氪(36kr)数据抓取 scrapy

    1. 36氪(36kr)数据----写在前面 今天抓取一个新闻媒体,36kr的文章内容,也是为后面的数据分析做相应的准备 36kr 让一部分人先看到未来,而你今天要做的事情确实要抓取它的过去. 网址 ...

  9. Python爬虫新手教程:微医挂号网医生数据抓取

    1. 写在前面 今天要抓取的一个网站叫做微医网站,地址为 https://www.guahao.com ,我们将通过python3爬虫抓取这个网址,然后数据存储到CSV里面,为后面的一些分析类的教程做 ...

最新文章

  1. Python多线程调试
  2. Angular-Ui-Router+ocLazyLoad动态加载脚本
  3. docker -v 文件夹下没有数据_详细!快速入门指南!Docker
  4. eclipse序列化生成serialVersionUID
  5. python中os.listdir()的使用和文件批量重命名方法
  6. 系统操作日志设计(二)
  7. VC各种情况下的窗口句柄的获取
  8. 4、已知圆的半径radius= 1.5,求其面积
  9. Spring编程模型:Spring实现了哪些编程模型?
  10. mysql数据库通过二进制 -【恢复数据记录】
  11. 高三!忏悔ing~(在这儿的第一篇随笔)
  12. 'React' must be in scope when using JSX react/react-in-jsx-scope报错:
  13. 多少人受够了机器学习的锤,却连个决策树都说不出!
  14. 微信小程序之 ----组件
  15. webpack vue-cli 常见问题总结
  16. ASP.NET中的TextBox下划线
  17. python写万年历_python万年历
  18. 同时删除多个 Txt 文本文档空白行
  19. excel自动汇总多个工作表数据
  20. java http请求图片_Java上传带图片的Http请求详解

热门文章

  1. P值(P-value),“差异具有显著性”和“具有显著差异”
  2. android案例一 电话拨号器
  3. 软件工程:需求分析的20条法则
  4. Linux find
  5. android webview实例,android WebView 使用实例
  6. 财务大数据比赛有python吗-如何在一个月之内掌握python数据分析,参加大数据比赛?...
  7. 没学过编程可以自学python吗-完全没学过编程的人学习 Python前应该掌握些什么?...
  8. 简明python教程百度云-网易云课堂 - 我的职业课堂
  9. python代码编辑器排行榜-写 Python 哪个编辑器 / IDE 最好用?
  10. 有道精品课python-115批量转存与提取sha1工具2020下载