python中国大学排名爬虫写明详细步骤-Python爬虫--2019大学排名数据抓取
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大学排名数据抓取相关推荐
- python中国大学排名爬虫写明详细步骤-python中国大学排名爬虫
python 中国大学排名爬虫 首先,给一个最好大学网URL:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html, 点击这里进入 . 功能描述 ...
- python中国大学排名爬虫写明详细步骤-Python爬虫——定向爬取“中国大学排名网”...
内容整理自中国大学MOOC--北京理工大学-蒿天-Python网络爬虫与信息提取 相关实战章节 我们预爬取的url如下 网页节选 在浏览器中读取网页源代码 可以 发现表格数据信息是直接写入HTML页面 ...
- python中国大学排名爬虫写明详细步骤-python网络爬虫入门实例:中国大学排名定向爬虫...
中国大学排名定向爬虫的 设计和实现 一.环境安装: 1.选择一个适合自己的IDE(以下代码用Jupyter Notebook编写) 2.打开cmd,安装requests库和beautifulsoup4 ...
- python中国大学排名爬虫写明详细步骤-Python之爬虫-中国大学排名
#!/usr/bin/env python # coding: utf-8 import bs4 import requests from bs4 import BeautifulSoup # 通过传 ...
- python中国大学排名爬虫写明详细步骤-python爬虫爬取2020年中国大学排名
from bs4 import BeautifulSoup # 网页解析 获取数据 import re # 正则表达式 进行文字匹配 import urllib.request, urllib.err ...
- python中国大学排名爬虫写明详细步骤-Python爬虫 2020中国大学排名
爬取中国大学排名 request 获取 html beautiful soup 解析网页 re 正则表达式匹配内容 新建并保存 excel 1 2 3 4 -*- codeing = utf-8 -* ...
- python官网的sdk下载详细步骤-Python SDK(beta)
Python SDK(beta) 更新时间:2018-03-23 17:26:00 概述 本文结合Link Develop,详细介绍如何基于Python SDK,实现物联网设备的设备注册.属性上报.事 ...
- Python爬虫入门【18】: 36氪(36kr)数据抓取 scrapy
1. 36氪(36kr)数据----写在前面 今天抓取一个新闻媒体,36kr的文章内容,也是为后面的数据分析做相应的准备 36kr 让一部分人先看到未来,而你今天要做的事情确实要抓取它的过去. 网址 ...
- Python爬虫新手教程:微医挂号网医生数据抓取
1. 写在前面 今天要抓取的一个网站叫做微医网站,地址为 https://www.guahao.com ,我们将通过python3爬虫抓取这个网址,然后数据存储到CSV里面,为后面的一些分析类的教程做 ...
最新文章
- Python多线程调试
- Angular-Ui-Router+ocLazyLoad动态加载脚本
- docker -v 文件夹下没有数据_详细!快速入门指南!Docker
- eclipse序列化生成serialVersionUID
- python中os.listdir()的使用和文件批量重命名方法
- 系统操作日志设计(二)
- VC各种情况下的窗口句柄的获取
- 4、已知圆的半径radius= 1.5,求其面积
- Spring编程模型:Spring实现了哪些编程模型?
- mysql数据库通过二进制 -【恢复数据记录】
- 高三!忏悔ing~(在这儿的第一篇随笔)
- 'React' must be in scope when using JSX react/react-in-jsx-scope报错:
- 多少人受够了机器学习的锤,却连个决策树都说不出!
- 微信小程序之 ----组件
- webpack vue-cli 常见问题总结
- ASP.NET中的TextBox下划线
- python写万年历_python万年历
- 同时删除多个 Txt 文本文档空白行
- excel自动汇总多个工作表数据
- java http请求图片_Java上传带图片的Http请求详解
热门文章
- P值(P-value),“差异具有显著性”和“具有显著差异”
- android案例一 电话拨号器
- 软件工程:需求分析的20条法则
- Linux find
- android webview实例,android WebView 使用实例
- 财务大数据比赛有python吗-如何在一个月之内掌握python数据分析,参加大数据比赛?...
- 没学过编程可以自学python吗-完全没学过编程的人学习 Python前应该掌握些什么?...
- 简明python教程百度云-网易云课堂 - 我的职业课堂
- python代码编辑器排行榜-写 Python 哪个编辑器 / IDE 最好用?
- 有道精品课python-115批量转存与提取sha1工具2020下载