BeautifulSoup库应用实例
2024-08-25 22:21:26
获取博客园本人的积分排名数据:
1. 抓包获取积分排名数据返回接口:http://www.cnblogs.com/belle-ls/mvc/blog/sidecolumn.aspx?blogApp=belle-ls
2. 解析返回的数据,获取积分排名
3. 开启线程,循环打印积分排名信息
from bs4 import BeautifulSoup
import time
import requests
import threading class BlogRankMonitor(object):
"""
获取博客园积分排名
""" def __init__(self, id):
self.urlBasic = 'http://www.cnblogs.com/%s/mvc/blog/sidecolumn.aspx?blogApp=%s'
self.id = id
self.score = 0
self.rank = 0 def get_nums(self, blogs_des):
"""
分割字符串 积分 - 43 排名 - 283325,获取数字
:return:
"""
split_str = blogs_des.split('-')[1].strip()
return split_str def get_blog_ranks(self):
"""
解析页面获取博客积分和排名
:return:
"""
url = self.urlBasic % (self.id, self.id)
res = requests.get(url)
soup = BeautifulSoup(res.text, "lxml")
liScore= soup.find(class_="liScore")
for child in liScore.children:
if u'积分' in child.string:
self.score = self.get_nums(child.string)
elif u'排名' in child.string:
self.rank = self.get_nums(child.string)
print("积分:", blog.score, "排名:", blog.rank, "时间:", time.strftime("%Y-%m-%d %X", time.localtime())) def start_score_rank_thread(self):
t = threading.Thread(target= self.get_blog_ranks())
t.start() if __name__ == '__main__':
blog = BlogRankMonitor('belle-ls') while 1:
blog.start_score_rank_thread()
time.sleep(10) #10s打印一次 """
运行结果:
积分: 45 排名: 0 时间: 2019-02-12 15:57:22
积分: 45 排名: 0 时间: 2019-02-12 15:57:32
积分: 45 排名: 0 时间: 2019-02-12 15:57:42
积分: 45 排名: 0 时间: 2019-02-12 15:57:53
积分: 45 排名: 0 时间: 2019-02-12 15:58:03
....
"""
最新文章
- ASP.NET泛型List的各种用法Skip、Take等
- Android学习笔记——xml
- IE6及以上版本fixed问题解决方案,页面右下角固定页面,可以最大化、最小化、正规显示
- Android--使用VideoView播放视频
- Javascript设计模式之创建对象的灵活性
- Linux下查看进程打开的文件句柄数和如何修改
- poj - 3225 Roadblocks(次短路)
- 戏(细)说Executor框架线程池任务执行全过程(下)
- Pester: Unit Testing for PowerShell
- C# winform 右下角弹窗
- [LeetCode 118] - 杨辉三角形(Pascal's Triangle)
- Linux 与 BSD 有什么不同?
- 22、手把手教你Extjs5(二十二)模块Form的自定义的设计[1]
- ES6的Symbol
- CSS 圣杯布局升级版---多个固定宽度一个自适应宽度
- 【Unity Shaders】Transparency —— 使用渲染队列进行深度排序
- 常见SMTP发送失败原因列表
- [转]PHP实现页面静态化的超简单方法
- 读《流畅的python》第一天
- [转]php中 curl模拟post发送json并接收json
热门文章
- 深数据 - Deep Data
- python3 tkinter 获取输入字符串长度
- vb.net 中 listview 中编辑 可以用 ComboBox 选择编辑数据
- spring是如何由请求地址找到对应的control的
- 软件工程:Java实现WC.exe基本功能
- MSSQL 静态值查询
- 转:[web]javascript 增加表單的input
- T-SQL查询进阶--理解SQL Server中索引的概念,原理
- 《C#多线程编程实战》2.5 AutoResetEvent
- [agc008f] Black Radius 树形dp