Python之py9-py9博客情况获取
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import re
import datetime
import requests
url_name_str='''朱子超 https://www.cnblogs.com/heroknot/
赵嘉豪 https://www.cnblogs.com/zhoajiahao/
巩景云 https://www.cnblogs.com/gongjingyun123--/
李琦 https://www.cnblogs.com/1naonao/
潘立府 https://www.cnblogs.com/plf-Jack/
胡凯琴 https://www.cnblogs.com/863652104kai/
雷俊 https://www.cnblogs.com/lucky75/
刘闯 https://www.cnblogs.com/miaowugulu/
毛毅智 https://www.cnblogs.com/acate/
葛林丽 https://www.cnblogs.com/geyatou322/
朱缘应 https://www.cnblogs.com/zhuyuanying123--/
雷鸣 https://www.cnblogs.com/leimingqq2/
赵刚 https://www.cnblogs.com/zhaogang0104/
吴锡 https://www.cnblogs.com/ZDQ1/
张岩 https://www.cnblogs.com/zuihoudebieli/
高化焱 https://www.cnblogs.com/gaohuayan/
孔凡平 https://www.cnblogs.com/WilliamKong94/
王强 https://www.cnblogs.com/bruce123/
杨文益 https://www.cnblogs.com/pythonywy/
伍开日 https://www.cnblogs.com/clarence203/
朱竹平 https://www.cnblogs.com/Hades123/
周瑞星 https://www.cnblogs.com/zrx19960128/
许长义 https://www.cnblogs.com/xcyandwxl/
储皖浏 https://www.cnblogs.com/chuwanliu/
陈石 https://www.cnblogs.com/chencharry/
徐浩 https://www.cnblogs.com/einsam/
吴奇宇 https://www.cnblogs.com/blog5434/
张天承 https://www.cnblogs.com/bladecheng/
赵志强 https://www.cnblogs.com/wsxiaoyao/
朱健 https://www.cnblogs.com/masterjian924/
魏义军 https://www.cnblogs.com/Dr-wei/
曹降祥 https://www.cnblogs.com/fengxuemuyangren/
陈跃春 https://www.cnblogs.com/chenych/
黄云 https://www.cnblogs.com/yellowcloud/
段力钢 https://www.cnblogs.com/raynduan/
刘金 https://www.cnblogs.com/itboy-newking/
'''
def get_name_url_dict():
"""读取文件"""
if not os.path.exists('博客地址.txt'):
with open('博客地址.txt', 'w', encoding='utf8') as fw:
fw.write(url_name_str)
fw.flush()
print('写入文件成功...')
with open('博客地址.txt', 'r', encoding='utf8') as fr:
name_urls = fr.readlines()
name_url_dict = dict()
for name_url in name_urls:
name_url_split = name_url.split()
name = name_url_split[0]
url = name_url_split[1]
name_url_dict[name] = url
print(f'同学数:{len(name_url_dict)}')
return name_url_dict
def request_next_url_data(next_url, url_list):
"""请求下一个网页"""
next_response = requests.get(next_url)
next_data = next_response.text
next_url_list = re.findall('href="(.*?)">(.*?)</a>', next_data)
url_list.extend(next_url_list)
re_next_url = re.findall('<a href="(https://www.cnblogs.com/.{0,30}/default\.html\?page=\d+)">下一页</a>', next_data)
if re_next_url:
re_next_url = re_next_url[0]
request_next_url_data(re_next_url, url_list)
return url_list
def for_every_name_urls(name_url_dict):
"""循环爬取所有人的博客信息"""
s_sum = ''
for name, home_url in name_url_dict.items():
# 拼接主页
s_sum = f'{s_sum}{name} {home_url}\n'
print(name, home_url)
# 获取第一页的内容
response = requests.get(home_url)
data = response.text
url_list = re.findall('href="(.*?)">(.*?)</a>', data)
# 判断是否存在下一页
next_url = re.findall('[^;]<a href="(https://www.*?/default\.html\?page=\d+)">下一页</a>', data)
if next_url:
next_url = next_url[0]
url_list = request_next_url_data(next_url, url_list)
# 去重处理
url_set = set()
for url in url_list:
if url[0].startswith(f'{home_url}p/') and url[0].endswith('html'):
url_set.add(url)
print(url_set)
for url in url_set:
s = f'{name} {url[0]} {url[1]}'
s_sum = f'{s_sum}{s}\n'
s_sum = f'{s_sum}\n'
return s_sum
def save_file(s_sum):
day_time = str(datetime.datetime.now()).split(' ')[0]
f = open(f'{day_time}-py9博客情况汇总.txt', 'w', encoding='utf8')
f.write(s_sum)
f.close()
if __name__ == '__main__':
name_url_dict = get_name_url_dict()
s_sum = for_every_name_urls(name_url_dict)
print(s_sum)
save_file(s_sum)
Python之py9-py9博客情况获取的更多相关文章
- python实现文章或博客的自动摘要(附java版开源项目)
python实现文章或博客的自动摘要(附java版开源项目) 写博客的时候,都习惯给文章加入一个简介.现在可以自动完成了!TF-IDF与余弦相似性的应用(三):自动摘要 - 阮一峰的网络日志http: ...
- 用python爬虫监控CSDN博客阅读量
作为一个博客新人,对自己博客的访问量也是很在意的,刚好在学python爬虫,所以正好利用一下,写一个python程序来监控博客文章访问量 效果 代码会自动爬取文章列表,并且获取标题和访问量,写入exc ...
- Python课程设计 搭建博客
安装包Github地址 Python综合设计 233博客 注意还有个email文件是需要填入自己信息的,比如最高权限账号和要发送邮件的账号密码 请安装Python2.7环境,本服务器所用环境为 设置环 ...
- python抓取51CTO博客的推荐博客的全部博文,对标题分词存入mongodb中
原文地址: python抓取51CTO博客的推荐博客的全部博文,对标题分词存入mongodb中
- Python爬取CSDN博客文章
0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...
- python+selenium之悠悠博客学习笔记
1 Python之自动化测试框架selenium学习 offical website 悠悠之selenium浅谈·博客园 悠悠软件测试系列 1.1 基础环境准备 1.1.1 python包下载工具的安 ...
- Python 爬取CSDN博客频道
初次接触python,写的很简单,开发工具PyCharm,python 3.4很方便 python 部分模块安装时需要其他的附属模块之类的,可以先 pip install wheel 然后可以直接下载 ...
- 使用原生 python 造轮子搭建博客
这篇用来 记录一个 从零开始的 博客搭建,希望坚持下去,因为python 开发效率令人发指,所以会原生从零写 ORM ,Web 框架 前提是打好 异步 io 的基础, 使用异步,有一点要谨记,一旦开始 ...
- 用Python给你的博客加上水印
之前写的博客里面用到的图片都没有加水印,今天才在别的网站上发现自己的博客居然一个字不动的出现在了别人的文章里,而且还不标注出处,简直醉了. 其实博客这种东西讲真我是很愿意让别人看得,因为自己写的也比较 ...
- Python 通用爬虫 和讯博客 scrapy
目标站点需求分析 通用爬虫,获取和讯博客所有博文 涉及的库 scrapy,re,requests,mysql URL RULE 解析单页源码 保存到数据库 结果
随机推荐
- 【JS】03 BOM 浏览器对象模型
BOM :Broswer Object Model 浏览器对象模型 核心对象是window对象,window对象又可以操作以下的常见对象: - frames[] 窗口对象数组? 浏览器可以打开多个窗口 ...
- FFmpeg在游戏视频录制中的应用:画质与文件大小的综合比较
我们游戏内的视频录制目前只支持avi固定码率,在玩家见面会上有玩家反馈希望改善录制画质,我最近在研究了有关视频画质的一些内容并做了一些统计. 录制视频大小对比 首先在游戏引擎中增加了对录制mp4格式的 ...
- tf.metrics 使用过程中发现的一些问题
起因是看到了这么一个帖子: http://www.cocoachina.com/cms/wap.php?action=article&id=86347 简短来说就是下面的代码 运行起来结果 ...
- 如何在X86_64系统上运行arm架构的docker容器——(异构/不同架构)CPU下的容器启动
近期使用华为的人工智能集群,其中不仅要求异构加速端需要使用昇腾的硬件,更是要求CPU是arm架构的,因此就导致在本地x86电脑上难以对云端的arm版本的镜像进行软件安装和打包操作,为此我们需要在x86 ...
- 人工智能、机器学习等科技领域论文中常见的词汇SOTA到底是什么意思,具体的用法是什么???
如题,经常可以在文章中看到这个SOTA的词汇,也就是state of the art,这个词汇我是看着感觉十分的不懂,这个词汇有时候被用作名词有时候又被用作形容词,但是不管用作形容词还是名词大多数人的 ...
- vscode中文环境配置
1.背景 2.配置 2.1.安装中文包 如果没有按照中文插件需要先按照中文插件 如果你是首次安装,安装完成后会引导你重启,就可以了 2.2.设置成中文环境 打开VSCode软件,按快捷键[Ctrl+S ...
- 曝光!Apache SeaTunnel Catalog 功能设计为何能大大简化用户启用步骤?
Catalog(目录)提供了关于数据库.表格和访问数据所需的信息的元数据,以及统一的 API 来管理元数据,验证连接,让元数据对 Sources(数据源).Sinks(数据汇)和 Web 可访问. C ...
- idea汉化包安装失败解决方法
idea安装中文插件时提示: Plugin "Chinese (Simplified) Language Pack / 中文语言包" was not installed: 查看自己 ...
- 【CMake系列】03-cmake 注释、常用指令 message、set、file、for_each、流程控制if
本文给出了 cmake 中的 一些常用的 指令,可以快速了解,为后面的内容深入 打点基础. 本专栏的详细实践代码全部放在 github 上,欢迎 star !!! 如有问题,欢迎留言.或加群[3927 ...
- 机器学习--决策树算法(CART)
CART分类树算法 特征选择 我们知道,在ID3算法中我们使用了信息增益来选择特征,信息增益大的优先选择.在C4.5算法中,采用了信息增益比来选择特征,以减少信息增益容易选择特征值多的特征的问题. ...