采集场景

在微博热搜榜(https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6)可实时查看微博热搜排名、热搜关键词和热搜数。点击每个热搜关键词可进入与其相关的微博列表页。我们需要采集以上数据。

采集字段

微博热搜排名、热搜关键词、热搜数、账号、发布内容、发布时间、来源、转发数、评论数、点赞数、采集时间和页面网址等字段。

鼠标放到图片上,右键,选择【在新标签页中打开图片】可查看高清大图

下文其他图片同理

采集结果

采集结果可导出为Excel、CSV、HTML、数据库等多种格式。导出为Excel示例:

教程说明

本篇制作时间:2020/4/26八爪鱼版本:V8.1.8

如果因网页改版造成网址或步骤无效,无法收集到目标数据,请联系官方客服,我们将及时修正。

采集步骤

步骤一、打开网页,使用【智能识别】生成规则

步骤二、创建【循环列表】,采集所有微博列表中的数据

步骤三、修改【循环】的XPath,以去掉多余列表

步骤四、修改字段的XPath,以精准采集所有字段

步骤五、创建【循环-点击元素】,展开微博全文

步骤六、启动采集

以下为具体步骤:

步骤一、打开网页,使用【智能识别】生成规则

1、自动识别热搜词列表

在首页输入微博热搜榜网址 https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6 ,点击【开始采集】,八爪鱼自动打开网页。

点击【自动识别网页】,成功识别了微博热搜榜中的列表数据。

2、点击每个热搜词链接,跳转至其相关的微博列表页

在【操作提示】框中勾选「点击列表中 关键词_链接 并采集下一级页面」,以跳转至其相关的微博列表页。

3、生成采集流程

点击【生成采集设置】,将自动识别出的列表数据和翻页,生成为采集流程,方便我们使用和修改。

同时会跳转到第一个热搜词相关的微博列表页。

步骤二、创建【循环列表】,采集所有微博列表中的数据

1、创建【循环列表】

通过以下连续3步,创建【循环列表】,采集所有微博列表中的数据

① 选中页面上1个微博列表,包含所有字段(微博这个网页比较特殊,无法直接选中整块微博列表,可以先选中较小的范围,然后在操作提示框中不断点击

 按钮,直至选中的区域扩大至整块列表,示例中点击了2次

按钮)

② 继续选中页面上1个微博列表,包含所有字段(同①)

③ 点击【采集以下元素文本】

特别说明:

a. 经过以上连续3步,【循环-提取数据】创建完成。【循环】中的项,对应着页面上所有微博列表。但是这样会将整个列表作为一个字段提取下来,如果需要分开提取字段,请看下面的操作。

b. 为何通过以上3步,可建立【循环-提取数据】?详情点击查

c. 选中一个范围后,在操作提示框中,点击

 按钮,可扩大一层选中的层级。可连续多次点击,每点一次,选中范围扩大一个层级。

2、提取微博列表中的字段

在循环的当前项中(用红色框框起来),选中文本,在操作提示框中,选择【采集该元素文本】。

文本类字段都可这样提取,示例中提取了账号、发布内容、发布时间、来源、转发数、评论数、点赞数、当前采集时间、页面网址 等字段。

特别说明:

a. 请注意,一定要在循环的当前项中(当前项会用红色框框起来)提取字段,才能与循环形成联动。否则,将重复采集某一条特定数据,无法与循环联动。

3、提取特殊字段,编辑字段

在【当前数据页面预览】中,点击 【+】号按钮,提取采集时间和页面网址。

进入【提取列表数据】设置页面,可删除多余字段,修改字段名,移动字段顺序等。

4、格式化数据

【转发数】和【评论数】这2个字段比较特殊,默认提取的内容与表头有重复的部分,可通过格式化数据去掉重复部分。

如果不介意重复,可跳过此步骤。

【转发数】格式化:点击字段后的

按钮,选择【格式化数据】→ 点击【添加步骤】→【正则表达式匹配】,输入正则表达式 [0-9]+,然后保存。就只匹配了数字,去除掉前面的【转发】。

【评论数】格式化过程同上。

特别说明:

a.什么是数据格式化?数据采集下来之后,有时候格式不是我们想要的,或者只想从一段数据里提取特定数据,可通过八爪鱼的【格式化数据】功能实现。详情点击查看

步骤三、修改【循环】的XPath,以去掉多余列表

默认生成的【循环】,会将右侧的【话题贡献排行榜】、【关于】、【热搜榜】和【搜索历史】也定位到,需手动修改XPath将其去掉。

进入【循环列表1】设置页面,修改XPath为://DIV[@class='card-wrap'][@mid] ,然后保存。

特别说明:

a. 如何写精准定位到目标微博列表的XPath?这需要一定的XPath知识。点击查看 XPath学习与实例教程 。

步骤四、修改字段的XPath,以精准采集所有字段

自动生成的字段的XPath,无法精准定位到所有微博中的字段,会漏数据。我们需手动修改字段的定位XPath。

以【账号】为例。在【账号】字段后选择【自定义定位元素方式】,修改XPath为:  //div[@class="info"]/div/a[@class="name"],然后保存。

其他字段的XPath修改方法同上,各XPath为:

【发布内容】://div[@class="content"]/p[@class="txt"][last()]

【发布时间】://div[@class="content"]/p[@class="from"]/a[1]

【来自】://div[@class="content"]/p[@class="from"]/a[2]

【转发数】://div[@class="card"]//ul/li/a[contains(text(),"转发")]

【评论数】://div[@class="card"]//ul/li/a[contains(text(),"评论")]

【点赞数】://div[@class="card"]//ul/li/a[@title="赞"]/em

特别说明:

a. 为什么默认的XPath,无法精准定位到所有微博中的字段?这是因为,微博列表分为热门博文和非非热门博文2种,我们在热门博文中做的字段提取,不适用非热门博文。我们需要写一条XPath,使之在热门博文和非热门博文中,都能提取到目标字段。

b. 如何写精准定位到所有字段的XPath?这需要一定的XPath知识。点击查看。

步骤五、创建【循环-点击元素】,展开微博全文

默认如果微博字数过多,会被折叠起来。如果无需展开微博全文,可跳过此步骤。

如果需要展开微博全文,请按以下步骤操作:

1、创建【循环】

在【点击列表链接】后添加一个【循环】。

进入【循环】设置页面,选择循环方式为【不固定元素列表】,填入XPath://p/a[contains(text(),"展开全文")]后保存。

2、创建【点击元素】,并与【循环】联动起来

在【循环】后添加一个【点击元素】。

进入【点击元素】设置页面,勾选【点击当前循环中设置的元素】,并设置【Ajax超时】2秒,设置完成后保存。

特别说明:

a. 经过以上几步操作后,会创建一个【循环-点击元素】,把页面中所有的【展开全文】全点开,以展开微博全文。全部展开后,再进行微博列表数据提取。

b. 如何写定位所有【展开全文】按钮的XPath?这需要一定的XPath知识。点击查看。

c. 为什么要设置【Ajax超时】?因为【展开全文】使用了Ajax技术,需设置【Ajax超时】。点击查看

步骤六、启动采集

1、单击【采集】并【启动本地采集】。启动后八爪鱼开始自动采集数据。

特别说明:

a. 【本地采集】是使用自己的电脑进行采集,【云采集】是使用八爪鱼提供的云服务器采集,点击查看本地采集与云采集详解。

2、采集完成后,选择合适的导出方式导出数据。支持导出为Excel、CSV、HTML、数据库等。这里导出为Excel。

数据示例:

拓展阅读

1、在未登录情况下,只可采集第一页微博列表数据,这是网站本身的限制。

2、如果需要采集更多页的微博,请登录后再采集。

3、第一页会显示当前时间下的最新博文。可通过八爪鱼云采集,定时采集(最小的定时间隔为1分钟)最新的热搜词及其相关博文。点击查看

作者:Vivi

编辑:Aisling

python爬虫微博热搜_微博热搜榜数据爬虫采集 - 八爪鱼采集器相关推荐

  1. java爬虫黑马百度云,Java爬虫小Demo java爬取百度风云榜数据

    Java爬虫小Demo java爬取百度风云榜数据 很简单的一个小例子,使用到了java的爬虫框架 jsoup ,一起啦看看实现的方法吧! 相关推荐:Python爬虫实战 python爬虫爬取百度风云 ...

  2. python提高导入数据库速度_提高从MongoDB导入数据速度

    Python编写爬虫,用的是Scrapy框架,将数据存储到了本机的MongoDB数据库上.导数据的时候发现数据的转化,速度有点慢. from pymongo import MongoClient #建 ...

  3. python如何设计爬虫界面软件_Python+PyQt5设计B站视频数据爬虫小程序

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于菜J学Python ,作者J哥 前言 目前,市场上有大量 Python图形用户界面( ...

  4. python抓取汤不热视频_你们想要的 Tumblr 爬虫

    好几个月前写的了,写的比较挫. 并没有写成爬取一个博客的所有内容,本来是用来网站的,如果要爬所有内容,会让用户等待太久. # -*- coding=utf-8 -*- from threading i ...

  5. python增加微博阅读量_微博如何增加阅读量

    如果爱 对于微博,我很认同的一个观点就是:如果爱,请深爱. 做微博的初心一定是"喜欢",喜欢别人认可你的文字,喜欢别人赞同你的观点,喜欢那种被认可的感觉,就是很多人一直做下去的动力 ...

  6. python微博文本分析_微博评论挖掘之Bert实战应用案例-文本情感分类

    Bert模型全称Bidirectional Encoder Representations from Transformers,主要分为两个部分:1训练语言模型(language model)的预训练 ...

  7. 微博 用户画像_微博/抖音/快手/小红书/B站内容营销和粉丝画像研究

    用户画像数据在市面上最难获得的一批数据,因为就算大部分咨询公司会对外公开趋势数据和大的宏观数据,一般不会公开用户画像数据,因为这部分的含金量最大,可以用于广告的投放,新媒体的预算分配,个人创业者平台的 ...

  8. 双机热备_双机热备软件哪个好?双机热备软件推荐

    服务器维护和管理是企业健康稳定运营的一项重要工作,而双机热备可以提供服务器的高可用性.但是成熟好用的双机热备软件有哪些呢?下面就给大家推荐几款. 微软MSCS MSCS(Microsoft Clust ...

  9. python网络爬虫网易云音乐_手把手教你写网络爬虫(1):网易云音乐歌单

    大家好,<手把手教你写网络爬虫>连载开始了!在笔者的职业生涯中,几乎没有发现像网络爬虫这样的编程实践,可以同时吸引程序员和门外汉的注意.本文由浅入深的把爬虫技术和盘托出,为初学者提供一种轻 ...

  10. java 热词_一个热词推荐的简单实现

    为什么想做这个东西 一直好奇像亚马逊这类网站的搜索是如何做到推荐的,最近刚好看到一篇文章:Redis 与搜索热词推荐,然而只写了思路.所以,就是想自己实现一个. 先上个效果图,再聊: P.S. 按四年 ...

最新文章

  1. golang copy函数
  2. JQuery中click() 和onclick()区别
  3. 7天学会python_7天学会Python最佳可视化工具Seaborn(五):结构化展示多维数据
  4. HDU 5914 Triangle 数学找规律
  5. ROS笔记(36) 避障运动规划
  6. 使用五种方法获取文件扩展名
  7. NYOJ4 - ASCII码排序
  8. shell 选择对话框
  9. 提高网站性能之 —— 减少图片HTTP 请求的方案
  10. 多元函数四则运算的一阶微分公式的存在性与性质
  11. GAT1400---基于libcurl库的开发
  12. wps计算机打印双面输出,如何在电脑wps软件内设置双面打印
  13. latex 长表格中放入多行公式
  14. 自制H5页面工具盘点 宣传/相册/邀请函
  15. QoS---QoS服务模型、影响网络质量的因素
  16. Google SketchUp For Dummies
  17. orange's一个操作系统的实现--学习过程  第三章:a  为什么需要认识IA32架构IntelCPU保护模式
  18. 读书笔记--Java核心技术--高级特征
  19. 解析错误:$%7BpageContext.request.contextPath%7D
  20. html video标签canplay,HTML oncanplay事件用法及代码示例

热门文章

  1. 计算机芯片制造原理,制作芯片与下围棋——一张图说明芯片的工作原理
  2. 【历史上的今天】3 月 13 日:Windows NT 之父出生;首届无人车顶级赛事;微软上市
  3. 微信小程序Tab切换,滑动切换
  4. 褚霸:阿里云数据库要放大招!
  5. m4a录音文件损坏修复_m4a音频文件损坏修复!
  6. 软件测评师的一些重点①
  7. qt修改文件编码格式
  8. google浏览器常用插件整理
  9. HTML基础标签与相关案例
  10. C# 按拼音/笔划 排序的简单示例(转)