re.findall获取CSDN博文阅读点赞收藏和评论实时数据

1、curl url >
在C站闲逛的时候,偶然拾得Linux页面源码获取指令“curl”,可以用“>”指令将获取到的页面源码写入磁盘文件 。
1.1 保存获取页面源码文本
Linux命令行
curl url > filename
文件存储路径,最好用相对路径(我用绝对路径是方便我在安装目录下执行 .py程序),在Linux下cd到代码.py和.txt同在的目录,*.py执行程序 。
【re.findall获取CSDN博文阅读点赞收藏和评论实时数据】代码(用os.()执行Linux命令行指令)
os.system(f"curl {url} > /sdcard/Documents/csdn_get_bloghtml.txt")
代码用os模块的方法执行Linux命令行命令,将curl获取的CSDN博文页面源码,保存到磁盘 。(关于os. 方法执行系统命令行指令,我之前写过一篇学习笔记“的系统命令行指令容器”,可以点击蓝色文字跳转翻阅)
1.2 将源码文本读入内存
用变量接收从磁盘文本文件读取的博文页面源码字符串 。
with open('/sdcard/Documents/csdn_get_bloghtml.txt') as f:text_html = f.read()
回页目录2、抽丝剥茧
2.1 re.剥离CSDN博文阅读点赞等数据
为避免笔记不过审,代码上截屏图片,屏蔽了re条件表达式源码 。完成源码已上传CSDN文库,可以从我的CSDN主页进入资源列表查阅 。
2.2 格式化输出
获取的博文信息数据,用 最新格式化方法“插值字符串格式化”做个输出模块,一条print() or input() 格式化输出 。(我之前有写过类自然语言的“插值字符串格式化”学习笔记,可以点击蓝色文字跳转康康)
效果截屏图片
调用函数,从博文源码字符串提取博文信息,参数是curl抓取的博文源码 。
blog_info = get_article_info(text_html) # 调用函数,从博文源码提取信息 。print('\n'.join(blog_info)) # 打印当前博文信息 。
2.3 打开网页报错拦截
302 Found,原始描述短语为 Moved,是HTTP协议中的一个状态码( Code) 。可以简单的理解为该资源原本确实存在,但已经被临时改变了位置;换而言之,就是请求的资源暂时驻留在不同的URI下,故而除非特别指定了缓存头部指示,该状态码不可缓存 。
404,是一种HTTP状态码,指网页或文件未找到 。\n\n{’’:>4}HTTP 404或Not Found错误信息是HTTP的其中一种“标准回应信息”(HTTP状态码),此信息代表客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应且不知原因 。
无效地址报错 。比如空白字符串’’、’ ' 。
错误代码捕捉代码
def html_error(text_html):''' 获取博文页面源码错误提示 '''if not text_html: # 获取博文页面源码为空 。tip = f"{'':>13}请核查Url拼写是否正确!"input(f"\n{'':~^50}\n{' Url错误!':^47}\n{'':~^50}\n\n{tip:>4}\n{'':-^50}\n{' 任意键继续…… ':^45}")returnelse:flag = ''.join(re.findall(r'\d+', text_html))[:3]# 找不至网页报错 。if flag == '302' :tip = f"{'':>4}302 Found,原始描述短语为 Moved Temporarily,是HTTP协议中的一个状态码(Status Code) 。可以简单的理解为该资源原本确实存在,但已经被临时改变了位置;换而言之,就是请求的资源暂时驻留在不同的URI下,故而除非特别指定了缓存头部指示,该状态码不可缓存 。"input(f"\n{'':~^50}\n{' “302”错误!':^47}\n{'':~^50}\n\n{tip:>4}\n{'':-^50}\n{' 任意键继续…… ':^45}")returnelif flag == '404' :tip = f"\n{'':>4}404,是一种HTTP状态码,指网页或文件未找到 。\n\n{'':>4}HTTP 404或Not Found错误信息是HTTP的其中一种“标准回应信息”(HTTP状态码),此信息代表客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应且不知原因 。"input(f"\n{'':~^50}\n{' “404”错误!':^47}\n{'':~^50}\n\n{tip:>4}\n{'':-^50}\n{' 任意键继续…… ':^45}")returnreturn True # 正常获取博文页面源码,返回真 。