利用python爬虫获取中国最好大学排名和B站排行榜视频
笔者刚学到python爬虫 无聊玩一玩
功能描述:
- 输入url
- 获取一系列的数据
- 在命令板输出
技术路线:requests>bs4
步骤:
- List item
- 先从网上找到中国大学排名的url中国最好大学
- 分析其html结构
- 利用bs,做出一个list内嵌dict与tuple
import requests
from bs4 import BeautifulSoupdef getContent(url):try:r = requests.get(url)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return "爬取失败"def makeSoup(content):soup = BeautifulSoup(content, "html.parser")return soupdef tackleContents(soup): # 由分析html结构得出l = [] # 字典listl1 = [] # 元组listfor i in soup.findAll(name="tr", class_="alt"):# print(i)d = {}td_list = i.findAll(name="td")d["ranking"] = int(td_list[0].string)d["name"] = td_list[1].div.stringd["location"] = td_list[2].stringd["type"] = td_list[3].stringd["score"] = float(td_list[4].string)t = (d["ranking"], d["name"], d["location"], d["type"], d["score"])l.append(d)l1.append(t)return l, l1
- 将列表作为全局量,命令版控制查看
# 字典形式
def selectByName(name):result = Nonefor r in l:if r["name"] == name:result = rreturn resultif result is None:return "无结果"# 元组形式
def selectByNumber(number):if 1<=number<=len(l1):return l1[number-1]else:return "无结果"
最后用命令行(无聊形式)…
print("正在网上收取排名结果,请骚等...\n")
l, l1 = tackleContents(makeSoup(getContent("http://www.zuihaodaxue.com/zuihaodaxuepaiming2020.html")))
choice = None
while choice != '0':choice = input("请输入您要查看的依据(1.校名、2.排名、0.退出):")if choice == "1":c = input("请输入您的校名:")print(selectByName(c))elif choice=="2":n = input("请输入您的排名:")print(selectByNumber(int(n)))elif choice=="0":breakelse:print("请输入正确的选项")
6.结果展示
最后附上B站的排行榜(直接上代码)html结构分析可照着以下代码慢慢看就不放html图了
import requests
from bs4 import BeautifulSoup# b站播放量
def get_content():list1 = []url = "https://www.bilibili.com/ranking?spm_id_from=333.851.b_7072696d61727950616765546162.3"r = requests.get(url)r.encoding = "utf-8"soup = BeautifulSoup(r.text, "html.parser")number = 0for p in soup.findAll("div", class_="info"):dict1 = {}number += 1a = p.find("a")spans = p.findAll("span", class_="data-box")if not spans:continueif not a:continuedict1.setdefault("name", a.get_text())dict1.setdefault("wow", spans[0].get_text())dict1.setdefault("comment", spans[1].get_text())dict1.setdefault("link", a["href"])list1.append(dict1)return list1for i in get_content():print(i)
运行结果
第一次写CSDN,也算是笔记吧哈哈哈哈哈
by Molala
利用python爬虫获取中国最好大学排名和B站排行榜视频相关推荐
- Python爬虫 | 利用python爬虫获取想要搜索的数据
这篇文章主要介绍了利用Python爬虫采集想要搜索的信息(利用某du的接口实现)并且处理掉它的反爬手段,文中示例代码很详细,具有一定的学习价值,感兴趣的小伙伴快来一起学习吧. ☀️新人小白博主
- Python网络爬虫实例——“中国最好大学排名爬取”(嵩天:北理工大学)学习笔记
这个例子比较简单也容易理解,我将细致的解析这个例子中算法流程.写一个博客算是给自己一个激励吧.一起加油.(_ZHJ三月和九月) 完整版代码 import requests from bs4 impor ...
- [遥感]利用python爬虫获取美国冰雪数据中心的数据
00. 写在前面: 由于最近学习方面需要用到NSIDC(美国冰雪数据中心)的数据进行计算,但是手工下载又特别耗费时间,需要一个一个去点击,所以我尝试着去写一个小爬虫获取所需数据. 对所有需要在NSID ...
- 如何利用python爬虫获取网易云音乐某个歌手简介_Python 爬虫获取网易云音乐歌手信息...
今天就先带大家爬取网易云音乐下的歌手信息并把数据保存下来. 爬取结果 环境 语言:Python 工具:Pycharm 导包 BeautifulSoup:用来解析源码,提取需要的元素. selenium ...
- python爬虫获取中国天气网天气数据 requests BeautifulSoup re
python获取中国天气网天气数据:http://www.weather.com.cn/textFC/henan.shtml main.py # -*- coding: utf-8 -*- impor ...
- 利用Python爬虫获取招聘网站职位信息
当你学会使用Python爬虫之后就会发现想要得到某些数据再也不用自己费力的去寻找,今天小千就给大家介绍一个很实用的爬虫案例,获取Boss直聘上面的招聘信息,同学们一起来学习一下了. Boss直聘爬虫案 ...
- php爬虫实时更新天气,Python爬虫获取中国天气网天气预报数据[2018-06-12更新]
实时天气显示建议用Domoticz内置的DarkSky. 天气预报只能自己获取. 此脚本获取中国天气网七日预报,设备需要自建虚拟硬件,添加虚拟设备,设备类型选择Text文本. 效果: 屏幕快照 201 ...
- 利用python爬虫获取豆瓣读书数据建立书单
0. 写在前面 网络爬虫: A Web crawler, sometimes called a spider, is an Internet bot that systematically brows ...
- python爬取中国最好大学排名(实例)
要求 爬取2018年最好大学网上排名前20的学校,以表格形式输出,包括(排名,学校名称,总分) 代码 根据基本要求可以编写出初始代码A #CrawUnivRankingA.py import requ ...
最新文章
- 更快更强,谷歌提出SWideRNet:全景分割新标杆来啦!
- 图像Stride求取
- 通过Http管理Solr Core,实现索引的分类
- HRFormer,内存和参数降低40%
- 标准采购订单的计算方案确定
- python 模拟用户点击浏览器_使用python进行模拟浏览器操作
- git的配置与基本使用
- python和java选择哪个-python和java哪个学起来更简单
- delphi中WMI的使用(一)
- 鸿蒙系统能玩魔兽世界吗,苹果M1可以玩魔兽世界吗 M1芯片能玩魔兽吗
- 辽宁师范大学计算机学院查寝吗,辽宁师范大学宿舍怎么样 住宿条件好不好
- 物联网工程导论第二版思考题答案
- 指令(MISP技术的指令集)
- 龙蜥操作系统 Anolis OS 8.6 - 来自阿里云的 CentOS 8 100% 兼容发行版
- 基于XC7K325T数据处理PXIE载板、FMC载板
- 学习java被虐千百遍
- ESP32-C3 应用 篇(实例二、通过蓝牙将传感器数据发送给手机,手机端控制 SK6812 LED)
- 电子设计竞赛(6)-逆变电路
- 【分享一个好看的Android item布局 使用于ListView,RecyleView JAVA版本(二)】
- Leecode159:至多包含两个不同字符的最长子串