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展示方式、前后端数据请求加载都是有差异的,随之而来的问题就是:对于不同的渠道源,设计爬虫程序的思路、执行的运行耗时、结果提取数据的准确性、全面性等细节都有可能不同。
  因此我们最终确立的方向也分为了以下两种:

  1. 如果所选渠道的工作方式是调用API接口获取json数据,然后再加载页面,那我们可以直接调用API后台接口,提取必要字段,则完成爬取工作。经分析,微博移动版网页即为此情形。
  2. 如果所选渠道的工作方式不是通过API异步加载数据渲染,而是访问网站URL时直接渲染了全部html结果返回,甚至用了react、vue或其他前端工程框架,则用selenium爬虫的方式爬取必要的字段方式来爬取数据。经分析,微博PC网页版为此种情形。

  此专题后面的文章,我们针对这两种情形,讨论其对应的爬取设计思路和实现逻辑

项目工程

工程参见:微博数据采集python+selenium工程:WBCrawler.zip

本专题内对源码粘贴和分析已经比较全面和清楚了,可以满足读者基本的学习要求。源码资源为抛砖引玉,也只是多了配置文件和一些工具方法而已,仅为赶时间速成的同学提供完整的项目案例。大家按需选择

执行程序

项目工程编译了windows版本执行程序:微博数据采集python+selenium执行程序:WBCrawler.exe

  1. 执行项目前,需要下载selenium对应的浏览器驱动程序(driver.exe),并放在本机环境变量路径中,否则会报错。安装操作具体可见博客专题中的指导【二】

  2. 执行程序时,会在系统用户默认路径下,创建一个虚拟的python环境(我的路径是C:\Users\Albert\AppData\Local\Temp_MEI124882\),因此启动项目所需时间较长(约20秒后屏幕才有反应,打出提示),请耐心等待;也正因如此,执行电脑本身环境是可以无需安装python和selenium依赖包的;同时最后爬取保存的excel也在此文件夹下。

  3. 本项目采用cmd交互方式执行,因此等到屏幕显示:

     选择爬取方式:
     1. 移动版微博爬取
     2. PC网页版微博爬取(单线程)
     3. PC网页版微博爬取(页面内多线程)
     4. PC网页版微博爬取(多线程异步处理多页面)
    

后,用键盘输入1~4,敲回车执行

  1. 此exe编译时,工程代码内编写的最终excel记录保存地址为:相对工程根路径下的excel文件夹;因此当本exe执行到最后保存数据时,会因为此excel文件夹路径不存在而报错。若在工程中将保存地址改为绝对路径(例如D:\excel\),再编译生成exe执行,则最终爬取数据可以正确保存

声明

  此问题为探讨研究性质课题,因此专题内所提供的文章、源码、方法、工程、爬取到的数据,都仅供兴趣爱好了解或个人学习研究使用,所有版权归属作者或原文博主。不得将其用于任何商业用途,也不可用于爬取私人数据,或用于网络攻击工具,否则相关法律后果由使用者自行承担!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭Albert

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值