爬取微博热门话题
Posted petewell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬取微博热门话题相关的知识,希望对你有一定的参考价值。
1 介绍
本文主要介绍爬取微博热门话题及话题下的微博。这是我毕业设计的数据来源,在这里先记录一下进展。
我买的阿里云服务器,【轻量应用服务器】预装宝塔Linux面板——三个月¥28.5。配置如下:
用起来还是很方便的,宝塔面板可视化文件上传下载,搭建web网站简便,可以定时爬虫程序。在阿里云服务器进行运行爬虫代码并连接到mysql数据库,运行环境如下:
类型 | 版本 |
---|---|
服务器 | CentOS Linux 7.4.1708 (Core) |
web服务器 | Apache 2.4 |
数据库 | mysql5.7 |
PYTHON | python 3.6.5 |
2 搭建过程
2.1 解析页面
爬取的是微博移动版 m.weibo.cn 在页面中按F12,找到json格式的页面,如下图,之后就是根据json的格式解析页面找到我们需要的信息,这个工作就是把返回的页面信息慢慢看了一层层解析字典,没什么捷径。
这步完成之后可以得到微博热搜话题榜单,在话题榜单的字典里有该话题的url,进入某个话题的url同上的操作,爬取话题下的所有微博。需要下滑才能显示下面的页面,这个通过设置url的page字段,知道返回ok=0认为没有了。
2.2 搭建阿里云服务器
完成上面的操作基本完成了数据的爬取,不过大量爬取的过程还是有些bug需要调,具体的可以看代码。下面来搭建阿里云服务器完成以下操作路径。
安装python3和pip3
代码是python写的,在服务器上安装python3和pip3,具体操作按照网上的教程来的,没有问题。需要注意的是我的服务器是Centos7.3和之前常用的Ubuntu系统还是有些差别的虽然都是Linux内核,一些安装命令是不同的。
数据库的坑
然后就是把代码上传到服务器上,在宝塔面板上操作,测试代码,然后下一步是存储到数据库中,我开始使用的是psycopg库,但是连接出现了很多问题连接不上,一方面是云服务器的设置问题,另一方面是库的问题,所以我在解决了云服务器的设置问题后使用了另一个数据库连接库pymysql,可以连接成功。
这里面如果第一次配置阿里云服务器还是有些坑的,在这里卡了一下。
【坑一】安装MySql5.7,至少是高版本的,不然表情无法保存到数据库,不会报错会有warning。虽然程序员不怕warning但是实在太多了。。。。
【坑二】由于端口没有开发,无法访问数据库。这里数据库对应的端口是3306。因为我安装了phpmyadmin他的端口是888,一直以为这个就是数据的端口实际不是。。。
端口的开发需要在两个地方同时开:1.在阿里云轻量服务器的控制的防火墙添加端口。2.在宝塔linux面板添加。只有在两个地方都添加才能正常访问对应的服务。
定时设置
这里的定时设置可以在宝塔linux面板的计划任务里面直接设置,很方便,我之前也查过一些定时的命令,不知道为啥没有执行,所以直接在上面设置执行周期和运行脚本。脚本内容直接写python3运行程序的命令,路径是绝对路径。
添加成功后在下面会显示任务,点执行看下执行效果,还可以查看日志。整个流程就连接起来了,就可以每天自动爬取微博热门话题及微博了。
以上是关于爬取微博热门话题的主要内容,如果未能解决你的问题,请参考以下文章