首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >「猫猫大学习」如何使用Tmux避免爬虫中断

「猫猫大学习」如何使用Tmux避免爬虫中断

原创
作者头像
meme猫
修改2025-06-26 19:54:53
修改2025-06-26 19:54:53
2240
举报

视频指路:「猫猫大学习」如何用Tmux避免任务中断 https://cloud.tencent.com/developer/video/83008

相信各位猫猫已经通过视频了解了Tmux的原理,那么,如何用OrcaTerm这款终端来进行实践体验呢?

接下来我们通过一个爬取某网站中名言的事例,来手把手教大家使用OrcaTerm体验tmux的优势与效果~


1. 进入OrcaTerm

a. 官方网址:https://orcaterm.cloud.tencent.com/terminal

b. 云服务器/轻量云服务器左侧导航栏

腾讯云控制台进入
腾讯云控制台进入

2. 连接服务器

通过快速连接/连接管理连接至自己的服务器

连接配置
连接配置

3. 点击顶部工具栏中的【会话恢复】按钮

会话托管按钮
会话托管按钮

4. 新建会话后即可进入tmux会话

新建会话
新建会话

5. 爬虫任务执行阶段

说明:本演示仅针对“爬取一百条名言”这一事例,其余程序依赖请视需要安装

a. 安装必要包

代码语言:javascript
复制
# 对于系统 Python 环境
sudo apt update
sudo apt install -y python3 python3-pip
sudo apt install python3-requests python3-bs4

b. 创建py文件

代码语言:javascript
复制
nano quotes.py

c. 复制以下代码进入py文件

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup

# 设置请求头,模拟浏览器行为
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}

# 定义爬取每一页名言和作者信息的函数
def crawl_data(page):
    url = f"http://quotes.toscrape.com/page/{page}/"
    response = requests.get(url, headers=headers)
    
    # 如果请求成功,响应状态码为200
    if response.status_code == 200:
        soup = BeautifulSoup(response.text, 'html.parser')
        
        # 通过解析HTML来获取每个名言和作者
        quotes = soup.find_all('div', class_='quote')
        
        # 提取每个名言和作者并返回
        quotes_data = []
        for quote in quotes:
            text = quote.find('span', class_='text').get_text(strip=True)
            author = quote.find('small', class_='author').get_text(strip=True)
            quotes_data.append((text, author))
        
        return quotes_data
    else:
        print(f"无法获取页面,状态码: {response.status_code}")
        return []

# 爬取100条名言和作者
def crawl_100_quotes():
    all_quotes = []
    page = 1
    while len(all_quotes) < 100:
        print(f"当前已爬取{len(all_quotes)}条名言,继续爬取...")
        
        # 每次爬取一页的数据
        quotes = crawl_data(page)
        
        # 将名言和作者添加到结果列表
        all_quotes.extend(quotes)
        
        # 如果还没有爬够100条,再继续爬取下一页
        if len(all_quotes) < 100:
            page += 1
            print("继续爬取下一页...")
    
    # 输出爬取的100条名言和作者
    print(f"\n共爬取到 {len(all_quotes)} 条名言:")
    for i, (text, author) in enumerate(all_quotes[:100], start=1):
        print(f"{i}. \"{text}\" — {author}")

# 执行爬虫
crawl_100_quotes()

d. 保存后运行

代码语言:javascript
复制
python3 quotes.py

e. 运行中

tmux会话运行页面
tmux会话运行页面

6. 运行命令后即可点击【退出tmux会话】,此时任务会在Server中持续运行

退出tmux会话
退出tmux会话

7. 当想编辑命令/查看进度的时候,再次点击【会话恢复】按钮,并选择进入会话即可

进入托管会话
进入托管会话

8. 再次“进入会话”后发现爬取任务已完成

任务完成
任务完成

本期猫猫大讲堂到此结束,小猫要继续去敲代码了,拜拜~

哦对了,谁的OrcaTerm专业版代金劵落在这里了,小猫决定从评论区抽五只幸运的小猫,送出OrcaTerm专业版资格!!

记得看自己的小猫信箱喔~

加班猫猫
加班猫猫

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档