爬取微博热门话题

1 介绍

本文主要介绍爬取微博热门话题及话题下的微博。这是我毕业设计的数据来源,在这里先记录一下进展。

我买的阿里云服务器,【轻量应用服务器】预装宝塔Linux面板——三个月¥28.5。配置如下:

image

用起来还是很方便的,宝塔面板可视化文件上传下载,搭建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的格式解析页面找到我们需要的信息,这个工作就是把返回的页面信息慢慢看了一层层解析字典,没什么捷径。

image

这步完成之后可以得到微博热搜话题榜单,在话题榜单的字典里有该话题的url,进入某个话题的url同上的操作,爬取话题下的所有微博。需要下滑才能显示下面的页面,这个通过设置url的page字段,知道返回ok=0认为没有了。

2.2 搭建阿里云服务器

完成上面的操作基本完成了数据的爬取,不过大量爬取的过程还是有些bug需要调,具体的可以看代码。下面来搭建阿里云服务器完成以下操作路径。

image

安装python3和pip3

代码是python写的,在服务器上安装python3和pip3,具体操作按照网上的教程来的,没有问题。需要注意的是我的服务器是Centos7.3和之前常用的Ubuntu系统还是有些差别的虽然都是Linux内核,一些安装命令是不同的。

数据库的坑

然后就是把代码上传到服务器上,在宝塔面板上操作,测试代码,然后下一步是存储到数据库中,我开始使用的是psycopg库,但是连接出现了很多问题连接不上,一方面是云服务器的设置问题,另一方面是库的问题,所以我在解决了云服务器的设置问题后使用了另一个数据库连接库pymysql,可以连接成功。

这里面如果第一次配置阿里云服务器还是有些坑的,在这里卡了一下。

【坑一】安装MySql5.7,至少是高版本的,不然表情无法保存到数据库,不会报错会有warning。虽然程序员不怕warning但是实在太多了。。。。

【坑二】由于端口没有开发,无法访问数据库。这里数据库对应的端口是3306。因为我安装了phpmyadmin他的端口是888,一直以为这个就是数据的端口实际不是。。。

端口的开发需要在两个地方同时开:1.在阿里云轻量服务器的控制的防火墙添加端口。2.在宝塔linux面板添加。只有在两个地方都添加才能正常访问对应的服务。

image

image

定时设置

这里的定时设置可以在宝塔linux面板的计划任务里面直接设置,很方便,我之前也查过一些定时的命令,不知道为啥没有执行,所以直接在上面设置执行周期和运行脚本。脚本内容直接写python3运行程序的命令,路径是绝对路径。
image
添加成功后在下面会显示任务,点执行看下执行效果,还可以查看日志。整个流程就连接起来了,就可以每天自动爬取微博热门话题及微博了。

原文:大专栏  爬取微博热门话题


猜你喜欢

转载自www.cnblogs.com/petewell/p/11601726.html