python爬虫——获取依据steam当前在线玩家人数排列的最热门游戏
先看一个爬虫入门的小程序——获取中国最好大学排名
import requests
from bs4 import BeautifulSoup
allUniv = []
def getHTMLText(url):try:r = requests.get(url, timeout=30)r.raise_for_status()r.encoding = 'utf-8'return r.textexcept:return ""
def fillUnivList(soup):data = soup.find_all('tr')for tr in data:ltd = tr.find_all('td')if len(ltd)==0:continuesingleUniv = []for td in ltd:singleUniv.append(td.string)allUniv.append(singleUniv)
def printUnivList(num):print("{:^4}{:^10}{:^5}{:^8}{:^10}".format("排名","学校名称","省市","总分","培养规模"))for i in range(num):u=allUniv[i]print("{:^4}{:^10}{:^5}{:^8}{:^10}".format(u[0],u[1],u[2],u[3],u[6]))
def main():url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2020.html'html = getHTMLText(url)soup = BeautifulSoup(html, "html.parser")fillUnivList(soup)printUnivList(10)
main()
稍微修改一下源程序——获取某省最好大学排名
import requests
from bs4 import BeautifulSoup
allUniv = []
def getHTMLText(url):try:r = requests.get(url, timeout=30)r.raise_for_status()r.encoding = 'utf-8'return r.textexcept:return ""
def fillUnivList(soup):data = soup.find_all('tr')for tr in data:ltd = tr.find_all('td')if len(ltd)==0:continuesingleUniv = []for td in ltd:singleUniv.append(td.string)allUniv.append(singleUniv)
def printUnivList(num):j = 1print("{1:{0}^4}{2:{0}^6}{3:{0}^10}{4:{0}^6}{5:{0}^8}{6:{0}^10}".format(chr(12288),"省内排名","全国排名","学校名称","省市","总分","培养规模"))for i in range(num):u=allUniv[i]if u[2] == '江西':print("{1:{0}^6}{2:{0}^6}{3:{0}^10}{4:{0}^6}{5:{0}^9}{6:{0}^11}".format(chr(12288),j,u[0],u[1],u[2],u[3],u[6]))j=j+1def main():url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html'html = getHTMLText(url)soup = BeautifulSoup(html, "html.parser")fillUnivList(soup)printUnivList(500)
main()
正文:写一个获取当前在线玩家人数排列的最热门游戏的小程序
学习完上面的爬虫入门程序后的某一天,我碰巧浏览到steam网站冒出灵感:写一个获取当前在线玩家人数排列的最热门游戏的小程序。
按F12发现,这个网页的源码正好适合新手练习。
干脆动手写一写吧!
源码
import requests
from bs4 import BeautifulSoup
import csvdef getHTMLText(url):try:r=requests.get(url)r.raise_for_status()r.encoding='utf-8'return r.textexcept:return ""def getMostPopularGamesList(steamHTMLText):#课本上中国最好大学排名的实例# 用一个singleGameData列表保存游戏当前玩家人数,今日峰值,游戏名称的数据#将所有游戏的singleGameData再存入一个gameList的列表gameList = []soup=BeautifulSoup(steamHTMLText)gameTr=soup.find_all("tr",{"class":"player_count_row"})for tr in gameTr:singleGameData=[]for span in tr.find_all("span",{"class":"currentServers"}):singleGameData.append(span.string)for a in tr.find_all("a",{"class":"gameLink"}):singleGameData.append(a.string)gameList.append(singleGameData)return gameListdef printList(gameList):print("依据当前玩家人数排列的最热门游戏")print("{1:{0}<4}{2:{0}<8}{3:{0}<10}{4:{0}<10}".format((chr(12288)),"排名","当前玩家人数","今日峰值","游戏"))for i in range(num):g=gameList[i]#获取每个游戏的数据列表print("{1:{0}<4}{2:{0}<8}{3:{0}<10}{4:{0}^10}".format((chr(12288)),i+1,g[0],g[1],g[2]))if __name__ == '__main__':url = "https://store.steampowered.com/stats/"steamHTMLText = getHTMLText(url)gameList = getMostPopularGamesList(steamHTMLText)num = len(gameList) # 网站只给出前一百的数据,因此num的值永远是100printList(gameList)
当然,steam上还有其他数据可以作为爬虫的练习。例如steam的硬软件调查等:
python爬虫——获取依据steam当前在线玩家人数排列的最热门游戏相关推荐
- Python爬虫获取文章的标题及你的博客的阅读量,评论量。所有数据写入本地记事本。最后输出你的总阅读量!
Python爬虫获取文章的标题及你的博客的阅读量,评论量.所有数据写入本地记事本.最后输出你的总阅读量!还可以进行筛选输出!比如阅读量大于1000,之类的! 完整代码在最后.依据阅读数量进行降序输出! ...
- 编写python爬虫 获取中华英才网全网工资数据
做数据分析 数据挖掘,第一步是获取数据,在这里,我们要分析现今全国各地各个职业的工资情况. 我们选择较为权威的'中华英才网',编写python爬虫获取该网站上的各个招聘信息说给出的工资,再取其行业工资 ...
- 使用Python爬虫获取豆瓣影评,并用词云显示
使用Python爬虫获取豆瓣影评,并用词云显示 Python语言流行到现在,目前最受开发者喜爱的功能莫过于它的爬虫功能,以至于很多人以为Python的英语发音也是"爬虫",其实它是 ...
- python Chrome + selenium自动化测试与python爬虫获取网页数据
一.使用Python+selenium+Chrome 报错: selenium.common.exceptions.SessionNotCreatedException: Message: sessi ...
- 域名带后缀_[Python 爬虫]获取顶级域名及对应的 WHOIS Server 及 whoisservers.txt 下载...
使用 Python 爬虫获取顶级域名及对应的 WHOIS Server 并保存可用于 WhoisCL.exe 的文件 whois-servers.txt. 环境: Windows 10 Python ...
- python爬虫获取url_Python爬虫如何获取页面内所有URL链接?本文详解
如何获取一个页面内所有URL链接?在Python中可以使用urllib对网页进行爬取,然后利用Beautiful Soup对爬取的页面进行解析,提取出所有的URL. 什么是Beautiful Soup ...
- python爬虫获取下一页url_Python爬虫获取页面所有URL链接过程详解
如何获取一个页面内所有URL链接?在python中可以使用urllib对网页进行爬取,然后利用Beautiful Soup对爬取的页面进行解析,提取出所有的URL. 什么是Beautiful Soup ...
- 突破次元壁障,Python爬虫获取二次元女友
突破次元壁障,Python爬虫获取二次元女友 前言 程序说明 二次元女友获取程序 观察网页结构 页面解析 创建图片保存路径 图片下载 格式转换 爬取结果展示 完整程序 前言 (又到了常见的无中生友环节 ...
- Python爬虫获取异步加载站点pexels并下载图片(Python爬虫实战3)
Python爬虫获取异步加载站点pexels并下载图片(Python爬虫实战3) 1. 异步加载爬虫 对于静态页面爬虫很容易获取到站点的数据内容,然而静态页面需要全量加载站点的所有数据,对于网站的访问 ...
最新文章
- lda 吗 样本中心化 需要_PCA 与 LDA 分析
- python 文件操作 os.readline()函数用法
- 【快乐水题】594. 最长和谐子序列
- 你技术很强但薪资不涨?这门技术远比你想的更重要!
- 软件盘将dialog顶上去_Android dialog软键盘弹出顶起View
- cpio备份linux系统,linux cpio 备份命令
- TCP/IP 网络协议
- 随机微分方程学习笔记03 Fisk-Stratonovich积分
- python阿拉伯数字转中文_阿拉伯数字转化为中文数字
- 明源软件诚聘.NET软件开发工程师
- 翘首期盼的3D仿真练实操全面开启线上学理论,3D练实操,为您插上考证成功的翅膀
- pix4d无人机影像处理_PhotoScan和Pix4Dmapper的无人机影像快速处理模式对比实验
- java标签outer,java outer
- 优秀课程案例|如何用scratch画柱形统计图
- MBA-day24 最值问题
- 在线抓包工具Whistle
- ORA-12012: error on auto execute of job SYS.BSLN_MAINTAIN_STATS_JOB
- oracle 不等于但包含空,sql语句不等于null
- STM32——FSMC(灵活的静态存储器控制器)驱动TFTLCD液晶屏
- 股票L1和L2都代表是什么意思?