后端开发库(月入过万的Python副业,靠的就是这10个库)

后端开发库(月入过万的Python副业,靠的就是这10个库)
月入过万的Python副业,靠的就是这10个库

先说一个真实的数据:

在自由职业(猪八戒网/电鸭社区/Fiverr/Upwork)等平台上,Python相关接单需求在过去两年增长了将近3倍。

单子涵盖的方向非常杂——数据爬取、自动化脚本、数据分析报告、小程序后端、AI接入改造……

后端开发库(月入过万的Python副业,靠的就是这10个库)

但仔细看完上百个已结单的案例,会发现一件事:

大多数高利润的单子,核心代码不超过200行,用到的库不超过5个。

这篇文章梳理出副业场景里出现频率最高的10个Python库,每个库给一个可以直接改造成接单作品的示例。


先说说Python副业有哪些路径

数据爬虫与采集 帮公司抓取竞品价格、采集行业数据、监控舆情信息。这类需求在电商、房产、招聘、金融行业极其常见,一个稳定运行的爬虫脚本,报价几百到几千不等,复杂的长期维护合同可以到万元以上。

自动化办公 帮企业把重复的人工操作变成脚本——批量处理Excel、自动填写表单、定时生成报告、邮件自动发送。这类需求门槛低、客单价中等,但需求量巨大,中小企业几乎每家都有。

数据分析与可视化 帮公司把原始数据变成漂亮的分析报告和图表。会SQL加上会Python数据分析,这个组合在兼职市场非常抢手。

API开发与小程序后端 为独立开发者或小公司写后端接口、搭建小型Web服务。FastAPI、Flask这类框架让Python后端开发的速度极快,一个简单的CRUD接口服务一两天就能交付。

AI功能集成 把大模型API接入现有系统,做智能客服、文档总结、内容生成工具。这类需求在2024年之后爆发式增长,很多传统企业急需但内部没有技术能力,愿意花高价外包。


现在进入正题——这10个库,是做上面这些副业的核心武器库。


TOP 1:Requests——所有网络请求的起点

适用副业: 爬虫、API调用、数据采集

每写一个爬虫、每调一次第三方API,第一行几乎都是import requests。

它把HTTP请求封装得极其简单:一行代码发请求,两行代码拿数据。

一个真实可用的示例:监控商品价格并发送提醒

import requestsimport smtplibfrom email.mime.text import MIMETextimport timedef check_price(url: str, target_price: float):    headers = {        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"    }        response = requests.get(url, headers=headers, timeout=10)    # 假设返回JSON格式的价格数据    data = response.json()    current_price = data.get("price", 0)        print(f"当前价格:¥{current_price}")        if current_price <= target_price:        send_alert(f"价格降到 ¥{current_price} 了,快去下单!")        return True    return Falsedef send_alert(message: str):    # 用QQ邮箱发提醒(需开启SMTP授权码)    msg = MIMEText(message, "plain", "utf-8")    msg["Subject"] = "价格提醒"    msg["From"] = "your@qq.com"    msg["To"] = "your@qq.com"        with smtplib.SMTP_SSL("smtp.qq.com", 465) as server:        server.login("your@qq.com", "授权码")        server.send_message(msg)    print("提醒邮件已发送")# 每隔1小时检查一次,降到500元以下就通知while True:    if check_price("https://api.example.com/product/123", target_price=500):        break    time.sleep(3600)

这个脚本帮客户监控竞品价格,部署在云服务器上,报价300-500元/月,接维护合同。


TOP 2:Pandas——数据处理的瑞士军刀

适用副业: 数据分析、Excel自动化、报表生成

"帮我把这几百个Excel整合成一份,按部门分类汇总,再算出每个人的绩效分"——这类需求,人工要做好几天,Pandas写100行代码,10秒跑完。

示例:批量合并Excel并生成汇总报表

import pandas as pdfrom pathlib import Pathdef merge_monthly_reports(folder_path: str, output_file: str):    """    合并文件夹里所有月度报表Excel    自动计算每个销售员的总业绩和排名    """    all_data = []    excel_files = list(Path(folder_path).glob("*.xlsx"))        print(f"找到 {len(excel_files)} 个Excel文件")        for file in excel_files:        df = pd.read_excel(file)        # 从文件名提取月份        df["月份"] = file.stem        all_data.append(df)        # 合并所有月份数据    merged = pd.concat(all_data, ignore_index=True)        # 按销售员汇总    summary = merged.groupby("销售员").agg(        总销售额=("销售额", "sum"),        订单数量=("订单编号", "count"),        平均客单价=("销售额", "mean")    ).round(2)        # 按总销售额排名    summary["排名"] = summary["总销售额"].rank(ascending=False).astype(int)    summary = summary.sort_values("总销售额", ascending=False)        # 导出结果    with pd.ExcelWriter(output_file, engine="openpyxl") as writer:        merged.to_excel(writer, sheet_name="明细数据", index=False)        summary.to_excel(writer, sheet_name="汇总排名")        print(f"汇总完成,共 {len(merged)} 条记录,结果保存至:{output_file}")    return summary# 使用result = merge_monthly_reports("./月度报表/", "2025年度汇总.xlsx")print(result.head(10))

这类脚本帮中小公司做一次性数据整理,报价200-800元,需求非常密集。


TOP 3:BeautifulSoup4——HTML解析神器

适用副业: 网页数据采集、内容监控

Requests负责把网页下载下来,BeautifulSoup负责把你想要的数据从HTML里挖出来。

示例:采集招聘网站职位信息

import requestsfrom bs4 import BeautifulSoupimport pandas as pdimport timedef scrape_jobs(keyword: str, pages: int = 5) -> pd.DataFrame:    """采集某招聘平台的职位信息"""    jobs = []    headers = {        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"    }        for page in range(1, pages + 1):        url = f"https://example-jobs.com/search?q={keyword}&page={page}"        response = requests.get(url, headers=headers, timeout=10)        soup = BeautifulSoup(response.text, "html.parser")                # 找到所有职位卡片        job_cards = soup.find_all("div", class_="job-card")                for card in job_cards:            job = {                "职位名称": card.find("h3", class_="job-title").text.strip(),                "公司名称": card.find("span", class_="company").text.strip(),                "薪资范围": card.find("span", class_="salary").text.strip(),                "工作地点": card.find("span", class_="location").text.strip(),                "发布时间": card.find("span", class_="date").text.strip(),            }            jobs.append(job)                print(f"第{page}页完成,已采集{len(jobs)}条")        time.sleep(2)  # 礼貌爬虫,避免给对方服务器造成压力        df = pd.DataFrame(jobs)    df.to_excel(f"{keyword}_招聘数据.xlsx", index=False)    print(f"采集完成,共{len(df)}条职位信息")    return df# 采集Python工程师岗位数据scrape_jobs("Python工程师", pages=10)

帮HR公司或猎头采集竞品薪资数据,或者帮求职者做市场分析,这类单子在数据服务平台很常见。


TOP 4:OpenPyXL——Excel深度操控

适用副业: 复杂Excel报表生成、财务自动化

Pandas处理数据,OpenPyXL负责把数据变成有格式、有样式、能直接给老板看的漂亮Excel。

示例:自动生成带格式的月度财务报表

from openpyxl import Workbookfrom openpyxl.styles import Font, PatternFill, Alignment, Border, Sidefrom openpyxl.utils import get_column_letterfrom openpyxl.chart import BarChart, Referenceimport datetimedef create_finance_report(data: list[dict], output_file: str):    wb = Workbook()    ws = wb.active    ws.title = "月度财务报表"        # 标题样式    title_font = Font(name="微软雅黑", size=16, bold=True, color="FFFFFF")    title_fill = PatternFill(fill_type="solid", fgColor="2E75B6")    header_font = Font(name="微软雅黑", size=11, bold=True, color="FFFFFF")    header_fill = PatternFill(fill_type="solid", fgColor="4472C4")        # 写入标题    ws.merge_cells("A1:F1")    ws["A1"] = f"{datetime.date.today().strftime('%Y年%m月')} 财务汇总报表"    ws["A1"].font = title_font    ws["A1"].fill = title_fill    ws["A1"].alignment = Alignment(horizontal="center", vertical="center")    ws.row_dimensions[1].height = 35        # 写入表头    headers = ["部门", "预算金额", "实际支出", "差异金额", "完成率", "备注"]    for col, header in enumerate(headers, 1):        cell = ws.cell(row=2, column=col, value=header)        cell.font = header_font        cell.fill = header_fill        cell.alignment = Alignment(horizontal="center")        # 写入数据    for row, item in enumerate(data, 3):        ws.cell(row=row, column=1, value=item["部门"])        ws.cell(row=row, column=2, value=item["预算"])        ws.cell(row=row, column=3, value=item["实际"])        ws.cell(row=row, column=4, value=item["实际"] - item["预算"])        ws.cell(row=row, column=5, value=f"{item['实际']/item['预算']*100:.1f}%")        ws.cell(row=row, column=6, value=item.get("备注", ""))                # 超支标红        if item["实际"] > item["预算"]:            for col in range(1, 7):                ws.cell(row=row, column=col).fill = PatternFill(                    fill_type="solid", fgColor="FFE0E0"                )        # 自动调整列宽    for col in range(1, 7):        ws.column_dimensions[get_column_letter(col)].width = 15        wb.save(output_file)    print(f"报表已生成:{output_file}")# 测试数据sample_data = [    {"部门": "市场部", "预算": 50000, "实际": 48000, "备注": "节省了2000"},    {"部门": "技术部", "预算": 80000, "实际": 85000, "备注": "服务器扩容"},    {"部门": "销售部", "预算": 30000, "实际": 28500},]create_finance_report(sample_data, "2025年12月财务报表.xlsx")

TOP 5:FastAPI——两天交付一个后端服务

适用副业: API开发、小程序后端、数据服务接口

示例:给小程序提供用户管理接口

from fastapi import FastAPI, HTTPException, Dependsfrom fastapi.middleware.cors import CORSMiddlewarefrom pydantic import BaseModelfrom datetime import datetimeimport uvicornapp = FastAPI(title="小程序后端API", version="1.0.0")# 允许跨域(小程序需要)app.add_middleware(    CORSMiddleware,    allow_origins=["*"],    allow_methods=["*"],    allow_headers=["*"],)# 数据模型class UserCreate(BaseModel):    openid: str    nickname: str    avatar_url: strclass UserResponse(BaseModel):    id: int    openid: str    nickname: str    created_at: datetime# 模拟数据库users_db = {}next_id = 1@app.post("/api/users/login", response_model=UserResponse)async def login_or_register(user: UserCreate):    """微信小程序登录/注册"""    global next_id        if user.openid in users_db:        return users_db[user.openid]        new_user = {        "id": next_id,        "openid": user.openid,        "nickname": user.nickname,        "created_at": datetime.now()    }    users_db[user.openid] = new_user    next_id += 1    return new_user@app.get("/api/users/{openid}", response_model=UserResponse)async def get_user(openid: str):    if openid not in users_db:        raise HTTPException(status_code=404, detail="用户不存在")    return users_db[openid]if __name__ == "__main__":    uvicorn.run(app, host="0.0.0.0", port=8000)    # 启动后访问 http://localhost:8000/docs 查看自动生成的接口文档

一个完整的后端接口服务,自动生成 Swagger 文档,适合交付给客户自行查看和测试。


TOP 6:Playwright——现代浏览器自动化

适用副业: 复杂表单自动填写、需要登录的网站自动化

Selenium 是上一代工具,Playwright 是现在的选择——更快、更稳定、更好用。

pip install playwrightplaywright install chromium

示例:自动登录并批量下载报告

from playwright.sync_api import sync_playwrightimport timedef auto_download_reports(username: str, password: str, save_dir: str):    with sync_playwright() as p:        browser = p.chromium.launch(headless=False)  # headless=True 不显示界面        page = browser.new_page()                # 登录        page.goto("https://example-platform.com/login")        page.fill("#username", username)        page.fill("#password", password)        page.click("button[type='submit']")        page.wait_for_url("**/dashboard")        print("登录成功")                # 进入报告页面        page.click("text=数据报告")        page.wait_for_selector(".report-list")                # 获取所有报告链接        report_links = page.query_selector_all(".report-item a")        print(f"找到 {len(report_links)} 份报告")                for i, link in enumerate(report_links):            # 设置下载路径            with page.expect_download() as download_info:                link.click()            download = download_info.value            download.save_as(f"{save_dir}/报告_{i+1}.pdf")            print(f"已下载:报告_{i+1}.pdf")            time.sleep(1)                browser.close()        print(f"全部下载完成,共{len(report_links)}份")auto_download_reports("your_username", "your_password", "./reports")

帮公司做自动化运营操作,这类脚本维护合同报价在500-2000元/月。


TOP 7:Schedule——定时任务,让脚本自动跑起来

适用副业: 一切需要"定时执行"的场景

大多数副业脚本需要长期运行,不能手动触发。Schedule 让你用最简单的语法设置定时任务。

import scheduleimport timeimport requestsimport pandas as pdfrom datetime import datetimedef daily_data_collection():    """每天早上8点自动采集数据并生成报告"""    print(f"[{datetime.now()}] 开始执行每日数据采集...")        # 采集数据    response = requests.get("https://api.example.com/daily-stats")    data = response.json()        # 追加到历史记录    df_new = pd.DataFrame([data])    try:        df_history = pd.read_excel("历史数据.xlsx")        df_combined = pd.concat([df_history, df_new])    except FileNotFoundError:        df_combined = df_new        df_combined.to_excel("历史数据.xlsx", index=False)    print(f"[{datetime.now()}] 数据采集完成,共{len(df_combined)}条记录")def weekly_report():    """每周一早上9点生成周报发邮件"""    print(f"[{datetime.now()}] 生成周报...")    # 生成报表逻辑...    print("周报已发送")# 设置定时任务schedule.every().day.at("08:00").do(daily_data_collection)schedule.every().monday.at("09:00").do(weekly_report)print("定时任务已启动,等待执行...")while True:    schedule.run_pending()    time.sleep(60)

部署在云服务器上,月费约20元,这个脚本就能7×24小时自动跑。


TOP 8:Matplotlib / Plotly——让数据会说话

适用副业: 数据可视化报告、商业分析图表

原始数据给客户,客户看不懂;变成图表,谁都能理解。

示例:用 Plotly 生成交互式销售分析图(可嵌入网页)

import plotly.express as pximport plotly.graph_objects as goimport pandas as pd# 示例销售数据data = {    "月份": ["1月", "2月", "3月", "4月", "5月", "6月"],    "销售额": [128000, 145000, 132000, 168000, 195000, 210000],    "目标": [150000, 150000, 150000, 160000, 180000, 200000],    "利润率": [18.5, 20.1, 17.8, 22.3, 24.1, 25.6]}df = pd.DataFrame(data)# 双轴图:柱状图显示销售额 vs 目标,折线图显示利润率fig = go.Figure()fig.add_trace(go.Bar(    x=df["月份"], y=df["销售额"],    name="实际销售额", marker_color="#4472C4"))fig.add_trace(go.Bar(    x=df["月份"], y=df["目标"],    name="目标销售额", marker_color="#ED7D31", opacity=0.6))fig.add_trace(go.Scatter(    x=df["月份"], y=df["利润率"],    name="利润率(%)", yaxis="y2",    mode="lines+markers", line=dict(color="#FF0000", width=2)))fig.update_layout(    title="2025年上半年销售分析",    yaxis=dict(title="销售额(元)"),    yaxis2=dict(title="利润率(%)", overlaying="y", side="right"),    legend=dict(x=0, y=1.1, orientation="h"),    template="plotly_white")# 保存为可交互的HTML文件(可直接发给客户,浏览器打开)fig.write_html("销售分析报告.html")# 也可以导出为静态图片fig.write_image("销售分析报告.png", width=1200, height=600)print("图表已生成")

帮公司做月度/季度数据可视化报告,单次报价300-1000元,建立长期合作后变成稳定收入。


TOP 9:python-docx——Word文档自动化

适用副业: 批量合同生成、报告模板填充

示例:批量生成客户报价单

from docx import Documentfrom docx.shared import Pt, RGBColor, Cmfrom docx.enum.text import WD_ALIGN_PARAGRAPHimport copydef generate_quotation(template_path: str, client_data: dict, output_path: str):    """根据模板批量生成报价单"""    doc = Document(template_path)        # 替换文档中的占位符    replacements = {        "{{客户名称}}": client_data["company"],        "{{联系人}}": client_data["contact"],        "{{日期}}": client_data["date"],        "{{有效期}}": client_data["valid_until"],        "{{总金额}}": f"¥{client_data['total']:,.2f}",    }        for paragraph in doc.paragraphs:        for placeholder, value in replacements.items():            if placeholder in paragraph.text:                for run in paragraph.runs:                    if placeholder in run.text:                        run.text = run.text.replace(placeholder, value)        # 填充报价明细表格    if len(doc.tables) > 0:        table = doc.tables[0]        for item in client_data["items"]:            row = table.add_row()            row.cells[0].text = item["name"]            row.cells[1].text = str(item["quantity"])            row.cells[2].text = f"¥{item['unit_price']:,.2f}"            row.cells[3].text = f"¥{item['quantity'] * item['unit_price']:,.2f}"        doc.save(output_path)    print(f"报价单已生成:{output_path}")# 批量为100个客户生成报价单clients = [    {        "company": "上海XX科技有限公司",        "contact": "李总",        "date": "2025-12-01",        "valid_until": "2025-12-31",        "total": 58800,        "items": [            {"name": "系统开发服务", "quantity": 1, "unit_price": 50000},            {"name": "部署实施", "quantity": 1, "unit_price": 5000},            {"name": "技术支持(年)", "quantity": 1, "unit_price": 3800},        ]    },    # 更多客户...]for client in clients:    output = f"报价单_{client['company']}.docx"    generate_quotation("报价单模板.docx", client, output)

帮保险、金融、B2B销售公司批量生成合同和报价单,这类脚本一次性报价500-1500元,需求非常稳定。


TOP 10:OpenAI / Anthropic SDK——AI功能集成

适用副业: AI工具开发、智能客服、内容生成系统

现在市场上最热门的需求之一:帮客户把 AI 接进他们现有的系统。

from openai import OpenAIimport pandas as pdclient = OpenAI(api_key="your-api-key")def batch_content_generator(product_list: list[dict]) -> pd.DataFrame:    """    批量为电商商品生成营销文案    适合帮助中小电商卖家的副业场景    """    results = []        for i, product in enumerate(product_list):        print(f"正在生成第{i+1}/{len(product_list)}个商品文案:{product['name']}")                response = client.chat.completions.create(            model="gpt-4o-mini",            messages=[                {                    "role": "system",                    "content": "你是一位专业的电商文案写手,擅长写出吸引买家、突出商品卖点的营销文案。"                },                {                    "role": "user",                    "content": f"""请为以下商品生成一段营销文案(100字左右):商品名称:{product['name']}主要卖点:{product['features']}目标客群:{product['target']}价格区间:{product['price']}要求:口语化,突出痛点,有行动引导。                    """                }            ],            max_tokens=300        )                results.append({            "商品名称": product["name"],            "生成文案": response.choices[0].message.content,            "Token消耗": response.usage.total_tokens        })        df = pd.DataFrame(results)    df.to_excel("批量文案.xlsx", index=False)    print(f"\n全部完成!共生成{len(results)}条文案")    return df# 测试products = [    {"name": "人体工学椅", "features": "腰部支撑、头枕可调、久坐不累",      "target": "程序员/设计师", "price": "1500-2000元"},    {"name": "无线降噪耳机", "features": "主动降噪、30小时续航、快充",     "target": "通勤族/学生", "price": "800-1200元"},]batch_content_generator(products)

帮电商卖家批量生成产品文案、标题,按商品数量收费,几百个商品报价500-2000元,边际成本趋近于零。


最后说一句

这10个库里,你只需要精通其中3-4个,就够接大多数副业单子了。

推荐的入门组合:

  • 数据方向:Requests + BeautifulSoup4 + Pandas + Matplotlib
  • 自动化方向:Playwright + OpenPyXL + python-docx + Schedule
  • 开发方向:FastAPI + Requests + Pandas + OpenAI SDK

不需要全部学完再去接单。

很多人的第一个单子,靠的就是一个 Pandas 脚本帮人整理 Excel,收了300块钱,然后逐渐开始接更复杂的需求,收入一步步涨上去。

开始比完美更重要。

你现在会用哪几个库?有没有用 Python 接过副业单子?评论区聊聊。

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

相关阅读