1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python爬虫【零】问题介绍 -- 对“微博辟谣”账号的历史微博进行数据采集

Python爬虫【零】问题介绍 -- 对“微博辟谣”账号的历史微博进行数据采集

时间:2023-04-24 10:04:00

相关推荐

Python爬虫【零】问题介绍 -- 对“微博辟谣”账号的历史微博进行数据采集

专题系列导引

  爬虫课题描述可见:

Python爬虫【零】课题介绍 – 对“微博辟谣”账号的历史微博进行数据采集

  课题解决方法:

微博移动版爬虫

Python爬虫【一】爬取移动版“微博辟谣”账号内容(API接口)

微博PC网页版爬虫

Python爬虫【二】爬取PC网页版“微博辟谣”账号内容(selenium同步单线程)

Python爬虫【三】爬取PC网页版“微博辟谣”账号内容(selenium单页面内多线程爬取内容)

Python爬虫【四】爬取PC网页版“微博辟谣”账号内容(selenium多线程异步处理多页面)

问题

  博主曾经遇到一个学习性质的爬虫课题:爬取‘微博辟谣’账号的历史微博。具体要求如下:

采集范围:1. ‘微博辟谣’账号原创或转发的历史全部贴子。2. 需要踢除微博月度工作报告。剔除的样例如下:采集格式:采集方框中的如下文本信息。分为4列。每行一条记录。1. 若为该账号原创帖,则采集账号本身、文本内容、发布时间、转发数。2. 若为转发的贴子,需要采集包含:原贴发布账号、原贴文本内容、原贴发布时间、原贴转发数。

原贴提取内容如下红框

转发贴提取内容:

分析

要提取微博网站的数据,有几种数据源的渠道:

有最早的web2G移动版(最早版本,页面特别简单,现在已经基本不用)3G4G移动版(IOS、Android手机浏览器浏览微博 URL:)PC网页版(使用PC浏览器IE、Chrome、Safari等浏览微博,URL:)

  因为每一种渠道对应的网站设计架构、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执行,则最终爬取数据可以正确保存

声明

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。