Python爬虫【零】问题介绍 -- 对“微博辟谣”账号的历史微博进行数据采集
专题系列导引
爬虫课题描述可见:
Python爬虫【零】课题介绍 – 对“微博辟谣”账号的历史微博进行数据采集
课题解决方法:
微博移动版爬虫
Python爬虫【一】爬取移动版“微博辟谣”账号内容(API接口)
微博PC网页版爬虫
Python爬虫【二】爬取PC网页版“微博辟谣”账号内容(selenium同步单线程)
Python爬虫【三】爬取PC网页版“微博辟谣”账号内容(selenium单页面内多线程爬取内容)
Python爬虫【四】爬取PC网页版“微博辟谣”账号内容(selenium多线程异步处理多页面)
问题
博主曾经遇到一个学习性质的爬虫课题:爬取‘微博辟谣’账号的历史微博。具体要求如下:
采集范围:1. ‘微博辟谣’账号原创或转发的历史全部贴子。2. 需要踢除微博月度工作报告。剔除的样例如下:采集格式:
采集方框中的如下文本信息。分为4列。每行一条记录。1. 若为该账号原创帖,则采集账号本身、文本内容、发布时间、转发数。2. 若为转发的贴子,需要采集包含:原贴发布账号、原贴文本内容、原贴发布时间、原贴转发数。
原贴提取内容如下红框
转发贴提取内容:
分析
要提取微博网站的数据,有几种数据源的渠道:
- 有最早的web2G移动版(最早版本,页面特别简单,现在已经基本不用)
- 3G4G移动版(IOS、Android手机浏览器浏览微博 URL:https://m.weibo.cn)
- PC网页版(使用PC浏览器IE、Chrome、Safari等浏览微博,URL:https://weibo.com)
因为每一种渠道对应的网站设计架构、DOM结构、HTML展示方式、前后端数据请求加载都是有差异的,随之而来的问题就是:对于不同的渠道源,设计爬虫程序的思路、执行的运行耗时、结果提取数据的准确性、全面性等细节都有可能不同。
因此我们最终确立的方向也分为了以下两种:
- 如果所选渠道的工作方式是调用API接口获取json数据,然后再加载页面,那我们可以直接调用API后台接口,提取必要字段,则完成爬取工作。经分析,微博移动版网页即为此情形。
- 如果所选渠道的工作方式不是通过API异步加载数据渲染,而是访问网站URL时直接渲染了全部html结果返回,甚至用了react、vue或其他前端工程框架,则用selenium爬虫的方式爬取必要的字段方式来爬取数据。经分析,微博PC网页版为此种情形。
此专题后面的文章,我们针对这两种情形,讨论其对应的爬取设计思路和实现逻辑
项目工程
工程参见:微博数据采集python+selenium工程:WBCrawler.zip
本专题内对源码粘贴和分析已经比较全面和清楚了,可以满足读者基本的学习要求。源码资源为抛砖引玉,也只是多了配置文件和一些工具方法而已,仅为赶时间速成的同学提供完整的项目案例。大家按需选择
执行程序
项目工程编译了windows版本执行程序:微博数据采集python+selenium执行程序:WBCrawler.exe
执行项目前,需要下载selenium对应的浏览器驱动程序(driver.exe),并放在本机环境变量路径中,否则会报错。安装操作具体可见博客专题中的指导【二】
执行程序时,会在系统用户默认路径下,创建一个虚拟的python环境(我的路径是C:\Users\Albert\AppData\Local\Temp_MEI124882\),因此启动项目所需时间较长(约20秒后屏幕才有反应,打出提示),请耐心等待;也正因如此,执行电脑本身环境是可以无需安装python和selenium依赖包的;同时最后爬取保存的excel也在此文件夹下。
本项目采用cmd交互方式执行,因此等到屏幕显示:
选择爬取方式:1. 移动版微博爬取2. PC网页版微博爬取(单线程)3. PC网页版微博爬取(页面内多线程)4. PC网页版微博爬取(多线程异步处理多页面)
后,用键盘输入1~4,敲回车执行
- 此exe编译时,工程代码内编写的最终excel记录保存地址为:相对工程根路径下的excel文件夹;因此当本exe执行到最后保存数据时,会因为此excel文件夹路径不存在而报错。若在工程中将保存地址改为绝对路径(例如D:\excel\),再编译生成exe执行,则最终爬取数据可以正确保存
声明
此问题为探讨研究性质课题,因此专题内所提供的文章、源码、方法、工程、爬取到的数据,都仅供兴趣爱好了解或个人学习研究使用,所有版权归属作者或原文博主。不得将其用于任何商业用途,也不可用于爬取私人数据,或用于网络攻击工具,否则相关法律后果由使用者自行承担!
Python爬虫【零】问题介绍 -- 对“微博辟谣”账号的历史微博进行数据采集相关推荐
- Python爬虫【二】爬取PC网页版“微博辟谣”账号内容(selenium同步单线程)
专题系列导引 爬虫课题描述可见: Python爬虫[零]课题介绍 – 对"微博辟谣"账号的历史微博进行数据采集 课题解决方法: 微博移动版爬虫 Python爬虫[一]爬取移 ...
- Python爬虫【四】爬取PC网页版“微博辟谣”账号内容(selenium多线程异步处理多页面)
专题系列导引 爬虫课题描述可见: Python爬虫[零]课题介绍 – 对"微博辟谣"账号的历史微博进行数据采集 课题解决方法: 微博移动版爬虫 Python爬虫[一]爬取移 ...
- Python爬虫【三】爬取PC网页版“微博辟谣”账号内容(selenium单页面内多线程爬取内容)
专题系列导引 爬虫课题描述可见: Python爬虫[零]课题介绍 – 对"微博辟谣"账号的历史微博进行数据采集 课题解决方法: 微博移动版爬虫 Python爬虫[一]爬取移 ...
- Python爬虫零基础到进阶(课程说明)
Python爬虫零基础到进阶 课程介绍总结 学-练-问 跟着学.多做多练.不懂就问.坚持就是胜利! 作业 飞书布置,作业提交放到群里,老师批改. 代码量 python基础: 十一次课,学会python ...
- python爬虫可以爬什么山好_学技树-Python爬虫零基础到爬啥都行
0101课程介绍.mp4 0202认识爬虫.mp4 0303requests库的安装与基本使用.mp4 0404requests库中的User-Agent请求头.mp4 0505requests中的p ...
- python爬虫视频 下载 黑马_Python爬虫能爬视频么(python爬虫零基础视频教程)
Python爬虫能爬视频么 他视频没有的,但是跑了之后你要处理这个视频,就是问题的?你只需要,得到视频的播放地址,还是要把视频完整的下载到本地的.如果只是爬那个视频的下载地址,很简单,如果要下载的话, ...
- 如何自学python爬虫-零基础入门Python爬虫不知道怎么学?这是入门的完整教程
这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...
- python selenium采集速卖通_2.不苟的爬虫小教程系列:python爬虫技术栈介绍
鉴于爬虫初学者们,往往也是编程的初学者,我在这里介绍一套最常用的技术栈,不求多,只求精. 毕竟我们的目标是采集到数据,只要能够成功实现目标的工具就是好工具. 爬虫框架scrapy:该框架是scrapi ...
- python爬虫什么意思-Python爬虫是什么意思有啥用 python爬虫原理实例介绍
据华为中国官方消息,今日,华为中国发文<小白看过来,让Python爬虫成为你的好帮手>,文中详细介绍了Python爬虫的工作原理,我们来看一下吧. 以下为<小白看过来,让Python ...
最新文章
- 关系型数据库设计要领(值得收藏)
- 【转】EXC_BAD_ACCESS问题在xode4下的调试技巧
- 剑指-顺时针打印矩阵
- 面试题 03.04. 化栈为队/面试题09. 用两个栈实现队列/232. 用栈实现队列
- 60 岁的人工智能,会是“人类历史最后的事件”吗?
- HDOJ-1875-畅通工程再续 解题报告
- CPLEX-求解VRPTW模型
- 线性调频信号与脉冲压缩
- C++中float和double的比较
- 三、Snapman多人协作电子表格之——软件的基本功能
- 平面设计文字排版方式有哪些?设计师们收藏——黎乙丙
- Flink Table和SQL中Table和DataStream的相互转换(fromDataStream、toChangelogStream、attachAsDataStream)
- 正则表达式的基本原理
- Mortal Kombat Tower (dp动态规划)
- 细说集线器、交换机和路由器
- Python---面向对象
- 幻方构造方法及C语言实现
- 心跳包(HeartBeat)
- 基于SQLSERVER--数据库表的修复
- 简单5招教你拍摄雪景个人写真?