提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、爬取微博热搜榜信息
- 二、部署到云服务器上
- 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