微博热搜榜、热点、帖子、评论爬虫 您所在的位置:网站首页 微博热搜榜显示不出来 微博热搜榜、热点、帖子、评论爬虫

微博热搜榜、热点、帖子、评论爬虫

2023-12-29 04:16| 来源: 网络整理| 查看: 265

提示:主要提供思路和内容参考,不提供完整资料;文章内容有许多瑕疵的地方(由于内容量太大),请理解。如果遇到不了解的地方,可以联系小编,尽个人所能解答。文章内容有错误的地方,希望第一时间能指点出来,小编可以及时完善。

作者:Irain QQ:2573396010 微信:18802080892

目录 1 实现前准备1.1 了解内容1.2 环境搭建1.2.1 第三方库1.2.2 模拟浏览器1.2.3 下载webdriver1.2.4 数据库搭建1.2.5 Scrapy爬虫 2 实现步骤2.1 热搜榜网页2.1.1 详细分析热搜榜网页2.1.2 分析热搜榜网页的Ajax内容2.1.3 热点数据表内容2.1.4 热搜榜思维图2.1.5 热搜榜相关代码 2.2 热点2.2.1 详细分析热点网页2.2.2 获得热点帖子的Ajax的URL2.2.3 详细分析热点帖子的Ajax内容2.2.4 热点话题2.2.5 热点帖子的Ajax中的导语2.2.6 热点帖子的Ajax中的帖子2.2.7 测试提取帖子内容2.2.8 帖子爬取结束标志2.2.9 热点帖子数据表内容2.2.10 热点帖子思维图2.2.11 热点帖子相关代码 2.3 帖子2.3.1 导语页面2.3.2 帖子评论2.3.2.1 详细分析帖子正文网页2.3.2.2 帖子评论页面分析2.3.2.3 两类评论2.3.2.4 查看评论条件2.3.2.5 帖子正文结束标志2.3.2.6 帖子正文思维图2.3.2.7 部分代码展示 2.4 互动评论页面2.4.1 详细分析互动评论页面2.4.2 互动评论思维图2.4.3 抽取互动评论部分代码 2.5 破反爬虫2.5.1 分析微博登录页面2.5.2 简单验证2.5.3 无法破解(小编无能为力) 2.6 退出账号 3 设计数据表3.1 设计数据表思维图3.2 创建表的部分代码3.3 MySQL-Front中的数据表3.4 数据表的内容 4 应用扩展4.1 热点词云、情感分析4.2 热点主题分类 5 参考链接6 完整流程图7 总结、建议和期望8 设计、实现和过程完整思维图

1 实现前准备 1.1 了解内容

Ajax内容了解链接

1.2 环境搭建 1.2.1 第三方库

pip install scrapy -i https://pypi.douban.com/simple/ pip install selenium -i https://pypi.douban.com/simple/ pip install pymysql -i https://pypi.douban.com/simple/ pip install requests -i https://pypi.douban.com/simple/ pip install lxml -i https://pypi.douban.com/simple/

1.2.2 模拟浏览器

在这里插入图片描述

1.2.3 下载webdriver

下载webdriver链接 在这里插入图片描述

1.2.4 数据库搭建

Mysql 5.5.36下载 Mysql-Front下载 数据库搭建链接

1.2.5 Scrapy爬虫

创建Scrapy爬虫 在DOC窗口创建scrapy项目和爬虫 设置配置 scrapy爬虫项目设置settings.py参数 代理IP、user-agent 中间件、请求头代理、IP代理 在这里插入图片描述

2 实现步骤

分析微博网页(热搜榜、热点、热点帖子、帖子互动评论)

2.1 热搜榜网页 2.1.1 详细分析热搜榜网页

热搜榜榜单的热点数据都是通过Ajax动态加载的。浏览器访问热搜榜网页,所有热点全部加载出来,不需要进行下一步操作。访问热搜榜网页不需要登陆微博。在开发者调试工具(在浏览器中按下F12)中进过多次访问、分析,热搜榜Ajax的url是不变的。这里用get访问方式,直接获取热搜榜Ajax内容。

热搜榜链接在这里插入图片描述

2.1.2 分析热搜榜网页的Ajax内容

详细分析Ajax内容:把Ajax内容在json.cn网页分析,发现热搜榜热点在json中存储的规律。使用json加载获取的Ajax中的热点内容(主题、链接、热度)。 http://json.cn/ 在这里插入图片描述 在这里插入图片描述

2.1.3 热点数据表内容

在这里插入图片描述

2.1.4 热搜榜思维图

在这里插入图片描述

2.1.5 热搜榜相关代码

在这里插入图片描述

2.2 热点 2.2.1 详细分析热点网页

与热搜榜网页分析方式和内容很像。热点网页的帖子都是通过Ajax动态加载的。浏览器访问热点网页,加载部分帖子, 通过滑动滚动条置底端,更新动态Ajax内容。也是不需要登陆微博。在开发者调试工具(在浏览器中按下F12)中进过多次访问、分析,发现热点帖子Ajax的url与热点URL相关联,可以相互转换。每个Ajax 的URL以页数page区别开来。访问方式仍然是get,循环获取热点帖子的Ajax内容,结束标志是没有帖子。没有反爬虫,容易爬取。 在这里插入图片描述

2.2.2 获得热点帖子的Ajax的URL

修改热点链接,获取热点帖子的Ajax的URL。在python IDLE下,测试把热点URL转换为Ajax的URL。 在这里插入图片描述

2.2.3 详细分析热点帖子的Ajax内容

把Ajax内容在json.cn网页分析,发现热搜榜热点在json中存储的规律。 http://json.cn/

在这里插入图片描述 在这里插入图片描述

2.2.4 热点话题

在这里插入图片描述 在这里插入图片描述

2.2.5 热点帖子的Ajax中的导语

不是所有的热点都有导语,社会事件一般才有导语。 在这里插入图片描述

2.2.6 热点帖子的Ajax中的帖子

分别在cards和card_group下的帖子 在这里插入图片描述 在这里插入图片描述

2.2.7 测试提取帖子内容

在DOS使用Scrapy Shell命令,获得热点帖子的Ajax,提取某个帖子的内容。 在这里插入图片描述

2.2.8 帖子爬取结束标志

在这里插入图片描述

2.2.9 热点帖子数据表内容

在这里插入图片描述

2.2.10 热点帖子思维图

在这里插入图片描述

2.2.11 热点帖子相关代码

用get获取热点帖子Ajax的代码。使用json加载Ajax中的热点帖子内容,提取帖子内容、作者ID等信息。 在这里插入图片描述 从热点帖子Ajax中提取热点页面帖子的相关代码 在这里插入图片描述 在这里插入图片描述

2.3 帖子 2.3.1 导语页面

从热点帖子Ajax中获取导语的内容和链接。使用get方式,访问导语链接,进入导语页面,获取相关信息(分类、阅读、讨论、原创次数)。在热搜榜热点数据表更新热点的导语等信息。不是所有的热点都有导语,社会事件一般才有导语页面。 在这里插入图片描述

在这里插入图片描述

2.3.2 帖子评论 2.3.2.1 详细分析帖子正文网页

与热点帖子网页分析方式和内容很像。帖子正文的评论都是通过Ajax动态加载的。在开发者调试工具(在浏览器中按下F12)中进过多次访问、分析,帖子正文页面的url只跟作者的ID有关,作者ID在爬取热点帖子(第二步骤)中获得。 帖子链接:https://m.weibo.cn/detail + 帖子作者ID 在这里插入图片描述

2.3.2.2 帖子评论页面分析

https://m.weibo.cn/detail/4513513248445166 在这里插入图片描述 在这里插入图片描述

2.3.2.3 两类评论

评论分成两类:互动评论和非互动评论。如果是非互动评论,则直接提取,全部存入到一个字符串中。 在这里插入图片描述 Ajax中评论者的ID,内容,互动评论次数等。 在这里插入图片描述 在这里插入图片描述

2.3.2.4 查看评论条件

访问Ajax需要登录身份,所以,用模拟浏览器访问Ajax,不在帖子正文页面中爬取评论,更加方便,不用下拉滚动条。而且,这样也容易通过互动评论次数,分辨出评论类型。 在这里插入图片描述

2.3.2.5 帖子正文结束标志

在这里插入图片描述

2.3.2.6 帖子正文思维图

在这里插入图片描述

2.3.2.7 部分代码展示

在这里插入图片描述 在这里插入图片描述

2.4 互动评论页面 2.4.1 详细分析互动评论页面

https://m.weibo.cn/detail/4513513248445166?cid=4513515199698214 帖子链接:https://m.weibo.cn/detail + 帖子作者ID + cid= + 首次互动评论者ID。在上一步(热点帖子页面的Ajax中获取了所有互动评论的首发者ID)中,把帖子正文页的URL与互动评论的首发者ID连接起来,得到互动评论页面的URL。 在这里插入图片描述 进入该页面后,互动评论的Ajax每次最多有20条评论。模拟浏览器下拉滚动条的次数 = 所有互动评论次数/20。页面加载所有互动评论后,获得网页代码,抽取互动评论。 在这里插入图片描述 https://m.weibo.cn/detail/4513130259258563?cid=4513131202918552 在这里插入图片描述

2.4.2 互动评论思维图

在这里插入图片描述

2.4.3 抽取互动评论部分代码

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

2.5 破反爬虫 2.5.1 分析微博登录页面

观看评论,都要登陆微博。所以,考虑使用Selenium模拟浏览器爬取评论。总是用同一个账号访问微博服务器,很容易被封号。可以去第三平台(百度、知乎搜索)购买微博小号,价格不贵。有2元以内,一个账号。 微博登录链接:https://passport.weibo.cn/signin/login 在这里插入图片描述

2.5.2 简单验证

最简单的验证方式是点击验证按钮,即可完成验证。 在这里插入图片描述 登录代码:输入账号、密码,点击确认和验证。 在这里插入图片描述

2.5.3 无法破解(小编无能为力)

高难度的验证方式:只能手动操作。点击验证按钮后,可能还有恶心的验证操作,如下面图。 在这里插入图片描述 拉条验证可能可以解决:通过图像识别,识别出凹槽的位置,然后模拟浏览器操控鼠标拖拉滚动条,完成验证。下面的字体验证恶心,肉眼很难识别。用机器识别,需要费多大的代价。 在这里插入图片描述

2.6 退出账号

退出账号的正常操作:进入微博个人设置页面,点击退出账号。用模拟浏览器直接访问退出账号的url,即退出当前账号。 https://m.weibo.cn/home/logout 在这里插入图片描述 在这里插入图片描述

3 设计数据表 3.1 设计数据表思维图

四张数据包、用户账号表、热搜榜表、热点帖子表、帖子评论表。思维图大致解释清楚每张数据表的内容。 在这里插入图片描述

3.2 创建表的部分代码

在这里插入图片描述

3.3 MySQL-Front中的数据表

在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

3.4 数据表的内容

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

4 应用扩展 4.1 热点词云、情感分析

在这里插入图片描述 在这里插入图片描述

4.2 热点主题分类

在这里插入图片描述

5 参考链接

https://www.cnblogs.com/bk9527/p/10504883.html https://blog.csdn.net/ayouleyang/article/details/104306270 https://blog.csdn.net/Eastmount/article/details/104995419

6 完整流程图

流程图绘画不佳(没有清楚、完整地表达出来):流程图链接

7 总结、建议和期望

总结:项目的出发点很重要,除了锻炼自己,还有随时以高精炼地了解社会热点;为以后词云、情感分析、主题分类的学习提供了充足、优质的来源;在更好方面,做成运营(爬虫模块负责采集优质数据,数据处理模块(词云、情感分析、主题分类、数据分析等)、宣传模块(公众号、小程序、Web、邮箱等渠道))。在这三个模块有序合作,每天自动化、不断推送当日社会情况。 缺陷:前期完成了重要的分析与设计,后期编写代码时,时不时地适当地构思和修改设计框架,加大了难度;爬虫的验证模块没有做到完全自动化,这个难度较大;整体爬取效率低,耗时间;需要强化爬虫伪装性。 建议:(强烈)把大部分时间放在分析需求与设计思路方面,这方面做得越好,代码编写过程就越轻松。如果在分析与设计中,出现了大错误,造成的结果很严重。大面积修改以前的代码是很难避免的;重新分析和设计;重新编写代码。 期望:完善IP代理池(爬取免费IP代理网站)、User-Agent代理池(考虑使用第三方库)、强化爬虫伪装性、爬取效率、完全自动化爬虫、尽量使用Scrapy架构优化。

8 设计、实现和过程完整思维图

在这里插入图片描述 发布:2020年6月9日



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有