提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


文章目录

  • 前言
  • 一、爬取微博热搜榜信息
  • 二、部署到云服务器上
  • 1.找到爬虫文件目录
  • 2.nohub说明
  • 总结



前言

提示:这里可以添加本文要记录的大概内容: 云服务器:centos7


提示:以下是本篇文章正文内容,下面案例可供参考

一、爬取微博热搜榜信息

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
代码如下(示例):

import requests
from bs4 import BeautifulSoup
import time
import schedule
def clean_text():
	# 清理文本 不追加写 以达到实时的效果
    with open(r'../data/WeiBoHotTopic.txt', 'a+', encoding='utf-8') as test:
        test.truncate(0)
def main():
    url = 'https://tophub.today/n/KqndgxeLl9'
    headers = { F12
    }
    response = requests.get(url=url, headers=headers).text

    soup = BeautifulSoup(response, 'lxml')

    hot_title_tr = soup.select('.table > tbody > tr')[0:10]
    date_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    clean_text()
    for tr in hot_title_tr:
        hot_title_number = tr.select('td')[0].get_text()
        hot_title_content = tr.select('td')[1].get_text()
        hot_title = hot_title_number + hot_title_content
        hot_num = tr.select('td')[2].get_text()
        # weibo_topic = [hot_title,hot_num]
        with open('../data/WeiBoHotTopic.txt', 'a+', encoding='utf-8') as f:
            f.write("日期:{},话题:{},热度:{}\n".format(date_time, hot_title, hot_num))


# 设置调度器
schedule.every(1).minutes.do(main)# 每隔5s执行一次job
# schedule.every().day.at("19:00").do(main) # 每天固定时间执行任务
if __name__ == '__main__':
    # 循执行
    while True:
        schedule.run_pending()

二、部署到云服务器上

1.找到爬虫文件目录

在服务器上,为了退出终端,程序依然能够运行,需要设置程序在后台运行。

关键的命令:nohup

*基本用法:
进入要运行的py文件目录前

nohup python  -u test.py > test.log 2>&1 &

2.nohub说明

*含义解释:
nohup  不挂起的意思
python  test.py   python运行test.py文件

-u  代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟

> test.log  将输出日志保存到这个log中

2>1    2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出; 
2>&1   换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

&   最后一个& ,代表该命令在后台执行

*命令运行后会有提示,示例:
[1]   2880

代表进程2880中运行。

*查看nohub命令下运行的所有后台进程:
jobs
*查看后台运行的所有进程:
ps -aux

*查看后台运行的所有python 进程:
ps aux |grep python
或者

ps -ef | grep python

*删除进程
kill PID
kill -9  [进程id]
-9  的意思是强制删除

总结

注意centos中的python版本问题,可以在日志文件中查看是否有错误,缺少模块就pip3.
centos改默认python2->python3