世界上最稀缺的资源是时间。

在某一瞬间我惊恐得发现,一生三万天,已过三分之一,念及年少不更事,蹉跎而过,觉得心中有愧。至今无建树,脑袋里想起一句话,“不因虚度年华而悔恨,也不因碌碌无为而羞耻”。

如今发起少年狂,对一切都感起兴趣,深知往者不可谏,来着犹可追。空有胸中之宏远,奈何路漫漫其修远,深感无力,只有择一事,写点博客吧!来一点点弥补辜负的少年时光。

目录

  • 准备
  • chromedriver接管chrome
  • 代码
  • 更多方法

准备

selenium是一个用于Web应用程序测试的工具。selenium测试直接运行在浏览器中,就像真正的用户在操作一样,我们可以用它进行爬虫。

首先需要安装selenuim和chromedriver 网上教程特别多,安装也很容易

在帮助-关于chrome里面查看chrome对应版本要选择对应版本,我的chrome版本 89.0.4389.114 正式版本 32 位,选择的chromedriver版本是89.0.4389.23。
chromedriver下载地址: https://npm.taobao.org/mirrors/chromedriver

最先想到的方案是从登陆页面开始,用selenium在登陆页面模拟登陆,然后获取登陆cookie,再进入博客数据页面抓数据,最终因为我比较懒,所有我决定先用chrome登陆csdn,然后再用selenium接管chrome,每次要取的时候,让程序进行刷新即可 一直保持chrome不关闭,不退出


chromedriver接管chrome

先打开windows cmd 进入chrome安装目录, 我的win10系统是在 C:\Program Files (x86)\Google\Chrome\Application ,然后运行chrome.exe --remote-debugging-port=9000 --user-data-dir="D:\tmp\seleinumChrome。 D:\tmp\seleinumChrome是自己随便建立的文件夹
9000是一个空闲的端口号,用netstat -ano|findstr 9000确保端口没有监听程序。然后在打开的浏览器登陆csdn。


代码

import time
import re
import datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
from openpyxl import Workbook
from openpyxl import load_workbookclass SeleniumTest(object):def __init__(self):chrome_options = Options()chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9000")chrome_driver = "D:\pythonProject\KReptile\KReptilVenu\Scripts\chromedriver.exe"driver = webdriver.Chrome(chrome_driver, options=chrome_options)driver.get("https://mp.csdn.net/console/dataWatch/analysis/allarticle")time.sleep(10) #10秒足够等到ajax取完数据# 获取统计数据dataAnaly = driver.find_element_by_id("data-analy")items = dataAnaly.find_elements_by_class_name('el-col')analysDict = {}for webelement in items:m = re.match(r'(\D+)(\d+)',webelement.text)name = m.group(1)value = m.group(2)analysDict[name.strip()] = int(value)analysHeader=["日期","文章总数","粉丝数","点赞数","评论数","访问量","积分","收藏数","总排名"]# 本地的统计excel,用openpyxl库进行操作sourcePath = "D:\\麦芒\\私域计划\\博客\\博客数据.xlsx"wb = load_workbook(sourcePath)ws_active =  wb['Sheet']row=[]for headerName in analysHeader:if headerName == "日期":row.append(datetime.date.today().strftime("%Y/%m/%d"))else:row.append(analysDict[headerName])ws_active.append(row)wb.save(sourcePath)if __name__ == "__main__":instance = SeleniumTest()

运行结果:


更多方法

不想手动执行的话,把python脚本加入windows执行计划,每天执行也可以。selenuim方式的缺点就是需要将浏览器挂起,万一不小心关掉浏览器就会失败。改进方法是直接抓接口,就算浏览器关闭,只要我没有退出,也是可以通过cookie通过登陆验证。请看文章:用nodejs配合python破解X-Ca-Signature,抓取博客积分数据

参考文章:
https://blog.csdn.net/weixin_41858542/article/details/84974356

用python,selenium抓取博客积分相关推荐

  1. 用nodejs配合python破解X-Ca-Signature,抓取博客积分数据

    世界上最稀缺的资源是时间. 在某一瞬间我惊恐得发现,一生三万天,已过三分之一,念及年少不更事,蹉跎而过,觉得心中有愧.至今无建树,脑袋里想起一句话,"不因虚度年华而悔恨,也不因碌碌无为而羞耻 ...

  2. [Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  3. c#使用正则表达式获取TR中的多个TD_[Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例...

    首先祝大家中秋节和国庆节快乐,欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都 ...

  4. 使用scrapy抓取博客信息

    使用scrapy抓取博客信息 本文使用python的爬虫工具scrapy获取博客园发布的文档的信息. 创建cnblog爬虫项目: scrapy startproject cnblog 创建爬虫cnbl ...

  5. 利用urllib3 抓取博客列表

    利用urllib3 抓取博客列表 分析页面代码 分析正则表达式 完整代码 分析页面代码 从这段代码中可以找到很多规律,例如,每条博客的所有信息都包含在一个 <div> 节点中,这个< ...

  6. .NET Core 实现定时抓取博客园首页文章信息并发送到邮箱

    前言 大家好,我是晓晨.许久没有更新博客了,今天给大家带来一篇干货型文章,一个每隔5分钟抓取博客园首页文章信息并在第二天的上午9点发送到你的邮箱的小工具.比如我在2018年2月14日,9点来到公司我就 ...

  7. .net core 实现简单爬虫—抓取博客园的博文列表

    一.介绍一个Http请求框架HttpCode.Core HttpCode.Core 源自于HttpCode(传送门),不同的是 HttpCode.Core是基于.net standard 2.0实现的 ...

  8. python+selenium统计CSDN博客(上):统计阅读量

    由于CSDN改版,本文有些过时,请移步Python玩转CSDN,用selenium统计博客的阅读量 这个功能是比较容易实现的,按理说一个人的所有文章都在博客主页,每篇文章的标题大致如下 <div ...

  9. [Python] python + selenium 抓取 京东商品数据(商品名称,售价,店铺,分类,订单信息,好评率,评论等)

    目录 一.环境 二.简介 三.京东网页分析 1.获取商品信息入口--商品列表链接获取 2.获取商品信息入口--商品详情链接获取 3.商品详情获取 4.商品评论获取 四.代码实现 五.运行结果 六.结语 ...

最新文章

  1. 如何从MP4视频文件中抽取MP3音频?
  2. [爬虫]通过url获取连接地址中的数据
  3. 1虚拟机下U盘或磁盘挂载,Ubuntu下的网络配置,图形化界面和命令界面之间的切换,软件源配置
  4. struts2中文件上传
  5. MaxCompute Spark 资源使用优化祥解
  6. tomcat jsvc java_opts_Tomcat 学习笔记(2) - 使用 jsvc 启动tomcat
  7. 计算机显卡960,2015显卡开年之作!NVIDIA GTX960首测
  8. 武汉理工大学刷课,刷在线作业程序,做作业脚本
  9. m1 MacBook 进入自检模式
  10. 再添荣誉!青软集团获评「山东省科技小巨人企业」称号
  11. Approximation of functions in fractional Sobolev spaces
  12. 华为云为基因检测保驾护航,助力健康行业发展
  13. mysql 直方图统计_MySQL 8.0 新特性之统计直方图
  14. Android开发之GPS测试完整案例源码详解之实时检测GPS的状态
  15. 学习 《模型思维》-斯科特·佩奇 笔记 9.27
  16. 分享 | 会 Python 的人究竟怎么炒股?
  17. PNG透明背景显示之路
  18. python中的del
  19. Android 音视频开发(二) -- Camera1 实现预览、拍照功能
  20. 路由器、交换机、集线器工作在哪一层

热门文章

  1. 刚从阿里、头条面试回来,疯狂java讲义第五版百度网盘
  2. NVivo12教程之数据的存储模型
  3. 【Python学习】买苹果简单案例
  4. Umami自建网站统计工具-免费开源的网站访问流量统计分析平台
  5. java进阶专栏的学习指南
  6. ゞAndroid - 毞記 - xxxxxxxxxゞ
  7. 交换机的工作原理以及搭建局域网划分VLAN
  8. 帮我写一个前端页面,使用react,组件使用antd,页面中需要有一个表格,表格包含序号、名称、创建日期。表格可以分页显示...
  9. 对比Fine BI、Smart BI、永洪BI、瓴羊Quick BI,可视化大屏哪家强?
  10. Python文件用pyinstaller打包成.exe文件后如何获取Python源码(Python文件反编译)