想法来源

CSDN作品数据里面只能查看一星期或者一个月的文章数据
但是我想查看我所有文章从开始至今的所有数据,大概如下效果

将所有信息统计后,生成excel表格
然后就可以在表格进行各种统计,查看,比如按照访问量排名之类的

网页分析

目标是爬取

  • 文章标题
  • 地址
  • 点赞数
  • 评论数
  • 收藏数
  • 阅读数

CSDN个人页面是下拉刷新的,所以使用selenium
个人页面源代码不能获取收藏数
收藏数需要进入具体文章爬取

标签直接使用谷歌自带工具就可以进行爬取,就不进行分析了

代码

from selenium import webdriver
from time import sleep
from lxml import etree
import os
import requests
import re
import random
import xlwt
if __name__ == "__main__":#创建工作簿f = xlwt.Workbook() sheet1 = f.add_sheet(u'博客信息统计',cell_overwrite_ok=True)rowTitle = [u'文章',u'链接',u'阅读数',u'点赞数',u'评论数',u'收藏数']for i in range(0,len(rowTitle)):sheet1.write(0,i,rowTitle[i]) headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}        bro = webdriver.Chrome(executable_path='E:/chromedriver_win32/chromedriver.exe')    bro.get('https://blog.csdn.net/weixin_41413511?spm=1011.2124.3001.5343')#向下拉14次页面,这个值根据你想下载多少自己设定bro.execute_script('window.scrollTo(0,(document.body.scrollHeight)/2)')   #每次下滑一个窗口距离for i in range(1,12):sleep(2)#留个时间  刷新下图片,不要太快bro.execute_script('window.scrollTo(0,(document.body.scrollHeight))')   #每次下滑一个窗口距离sleep(1)#获取标签数据page_text = bro.page_sourcetree = etree.HTML(page_text)li_list = tree.xpath('//*[@id="floor-user-profile_485"]/div/div[2]/div/div[2]/div/div[2]/div/div/div')  for li in li_list:url_list=li.xpath('//article/a/@href')article_title=li.xpath('//div[1]/h4/text()')view_num=li.xpath('//span[@class="view-num"]/text()')comment_num=li.xpath('//div[3]/div[1]/div[3]/span/text()')give_like_num=li.xpath('//div[3]/div[1]/div[4]/span/text()')get_collection_list=[]cnt=0#统计下载进度total=len(article_title)#统计下载文件数目for url in url_list:response = requests.get(url=url,headers=headers).texttree = etree.HTML(response)get_collection_text=tree.xpath('//*[@id="get-collection"]/text()')[0]get_collection=re.match("\n\s+(\d+)\n.*",get_collection_text).group(1)get_collection_list.append(get_collection)cnt=cnt+1print(cnt,"/",total)#设置随机时间,这样比较不容易被封锁IPa=random.uniform(0.5,1.5)sleep(a)for i in range(0,total):#print(article_title[i],url_list[i],view_num[i],give_like_num[i],comment_num[i],get_collection_list[i])sheet1.write(i+1,0,article_title[i]) #文章sheet1.write(i+1,1,url_list[i]) #链接sheet1.write(i+1,2,int(view_num[i]))#阅读sheet1.write(i+1,3,int(give_like_num[i]))#点赞sheet1.write(i+1,4,int(comment_num[i]))#评论sheet1.write(i+1,5,int(get_collection_list[i]))#评论f.save('F:/write_excel.xls')    

其他

将爬取数据放入Excel
Python中产生随机数

爬取CSDN博客文章,统计文章历史数据相关推荐

  1. 大屏监控系统实战(6)-爬虫初探:爬取CSDN博客之星年度总评选投票统计数据

    一.介绍 我们先来做个简单的,我们的目标是爬取CSDN博客之星年度总评选的首页信息. 首页的地址:http://m234140.nofollow.ax.mvote.cn/wxvote/43ced329 ...

  2. python爬虫爬取csdn博客专家所有博客内容

    python爬虫爬取csdn博客专家所有博客内容: 全部过程采取自动识别与抓取,抓取结果是将一个博主的所有 文章存放在以其名字命名的文件内,代码如下 #coding:utf-8import urlli ...

  3. 【爬虫+数据可视化】Python爬取CSDN博客访问量数据并绘制成柱状图

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业及非法用途,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/article/ ...

  4. C/C++ | Qt 实现爬虫功能,爬取CSDN博客文章

    话不多说,先看程序运行截图: 注意: 本人没有看过爬虫相关的书籍,第一次写这种程序,这个程序是半屌子的,原理很简单,没有学习过爬虫的朋友,也可以写. 程序思路如下: 1.下载要爬网站的页面. 2.用正 ...

  5. python实战系列之爬取CSDN博客之星2020年度排名情况(附源码)

    前言 CSDN2020年度博客之星马上就要收尾了,你知道自己关注的博主排名实时变化吗?谁是你心目中的博客之星,让我们爬取各位博主的排名及各位博主的一些个人信息. 代码 直接上代码 # -*- codi ...

  6. Python爬虫小实践:使用BeautifulSoup+Request爬取CSDN博客的个人基本信息

    好久都没有动Python了,自从在网上买了<Python网络数据采集>这本书之后一直没有时间写自己的小的Demo,今天再网络上无意中看见 http://www.cnblogs.com/mf ...

  7. Python爬虫:通过爬取CSDN博客信息,学习lxml库与XPath语法

    目录 lxml库 lxml基本用法 解析XML文件 解析HTML文件 XPath 什么是XPath XPath语法 XPath实战 选取某节点的所有子孙节点 选取某节点的所有子节点 通过属性选取某节点 ...

  8. 用selenium爬取csdn博客文章,并用4种方法提取数据

    为了方便susu学习selenium,下面代码用selenium爬取博客文章的标题和时间,并用selenium自带的解析,etree,bs4,scrapy框架自带的selector等4种方式来解析网页 ...

  9. python爬虫搜特定内容的论文_Python 爬虫爬取指定博客的所有文章

    自上一篇文章 Z Story : Using Django with GAE Python 后台抓取多个网站的页面全文 后,大体的进度如下: 1.增加了Cron: 用来告诉程序每隔30分钟 让一个ta ...

  10. 使用selenium爬取csdn博客

    爬取的基本原理是:使用代码控制浏览器,让浏览器加载出页面后,把页面的源代码抓取下来 这篇博客的思路是: 基本环境搭建 核心代码与解释 工具类的代码与解释 一. 基本环境搭建 这里建议使用豆瓣源进行安装 ...

最新文章

  1. ISDN,俗称一线通!
  2. 一个被 CEO 逼疯的技术负责人的检讨书
  3. boost::histogram::accumulators::count用法的测试程序
  4. 电子美图更新36张!
  5. hbase linux 命令,在linux下操作hbase
  6. MinGW 编译libwebsockets
  7. java实现小程序订阅消息推送(附源码)
  8. 量化指标公式源码_最牛通达信量化副图指标公式源码
  9. 数学教育与计算机教育ppt,计算机基础教育课件.ppt
  10. python画多边形太阳花
  11. erp系统用MySQL吗_如何给ERP系统选择合适的数据库?
  12. win10进不了BIOS界面
  13. 好性格让孩子受用终生
  14. 如何学习SDN及网络自动化
  15. 如何升级自己的思维?成为你想成为的自己。
  16. 文件分片上传阿里云OSS
  17. 【AI Studio平台基本操作】课程回看
  18. 给一些想要学习Java同学的一些建议
  19. 删除用户:userdel
  20. QST青软实训学员学习总结-2020/4/22-ZigBee

热门文章

  1. 10个大数据思维原理,你了解多少?
  2. bt种子增加服务器,bt发布-BT种子怎么发布?服务器地址、发布者网址应怎么填写? 爱问知识人...
  3. Axure RP 10 安装方法
  4. 四种优秀的数据库设计工具
  5. 【雕爷学编程】Arduino动手做(84)---DS1307时钟模块
  6. 射频识别技术漫谈(26)——Felica的文件系统
  7. java程序员模版_45套java程序员简历模板
  8. [转载]使用Java将Word转为Html或txt!
  9. 360安全浏览器安装adblock plus
  10. UDS协议的项目应用