
“小王,帮我把这个网站上的所有发票自动下载下来,每天中午12点前整理好发我邮箱。”
你看了看手里的需求,内心OS:又要写Selenium脚本,又要处理验证码,还得对接邮件…
如果我说,这些事用9个Python库就能搞定,而且代码不超过20行呢?
如果你把互联网想象成一个巨大的政务大厅:
下面这9个库,每一款都能让你的代码像长了手一样,自动填表、截图、发消息、收邮件,甚至绕过API限制爬取数据。
会填表的“乖浏览器”
就像一个听话的实习生,你告诉他“打开登录页,填用户名密码,点提交”,他就照做,不会多开一个标签页。
# 环境:Python 3.8+
import mechanicalsoup
browser = mechanicalsoup.StatefulBrowser()
browser.open("https://github.com/login")
browser.select_form('form[action="/session"]')
browser["login"] = "your_username"
browser["password"] = "your_password"
browser.submit_selected()
print(browser.get_url()) # 输出:https://github.com/ 登录后首页
复杂度:时间 O(加载页面时间),空间忽略不计
适用场景:表单提交、简单登录、无需JS渲染的网站。
⚠️ 注意:如果页面有大量JavaScript动态加载内容,MechanicalSoup会“失灵”——这时候就该请出下面的Pyppeteer了。
头号Chrome手术刀
Selenium像是开着卡车冲进商场,Pyppeteer则是派一个隐形人进去精准取货。
# 环境:Python 3.7+,首次运行会自动下载Chromium
import asyncio
from pyppeteer import launch
asyncdefscreenshot():
browser = await launch(headless=True) # 无头模式
page = await browser.newPage()
await page.goto("https://news.ycombinator.com")
await page.screenshot({"path": "hn.png"})
await browser.close()
asyncio.get_event_loop().run_until_complete(screenshot())
# 运行后当前目录生成 hn.png
复杂度:内存占用约100-200MB,首次启动稍慢,但后续执行极快。
扩展思考:国内类似场景(如支付宝、淘宝自动化)建议使用 pyppeteer-stealth 插件,避免被反爬识别。
Telegram的“神级遥控器”
别人用机器人(Bot)是点外卖,你用Telethon是直接接管了整个厨房。
# 环境:Python 3.6+,需申请API ID和API Hash
from telethon import TelegramClient
api_id = 12345
api_hash = "your_api_hash"
client = TelegramClient("anon", api_id, api_hash)
asyncdefmain():
await client.start()
asyncfor msg in client.iter_messages("me"):
print(msg.sender_id, msg.text)
client.loop.run_until_complete(main())
# 输出:自己的消息记录(可自动存档)
⚠️ 注意:用Telethon登录时,Telegram会向你的手机发送验证码,代码里需要处理
await client.sign_in(code),切勿硬编码验证码。
国内实践:虽然微信没有同等开放的客户端API,但在企业微信、飞书自动化场景中,类似思路可参考 wechatpy 或飞书SDK。
轻量级定时任务“自动巡航”
你设定好“每隔5分钟检查一次网站状态”,它就像闹钟一样准时执行,不需要你手动触发。
# 环境:Python 3.6+,支持Redis、SQLite等多种存储
from huey import RedisHuey
import requests
huey = RedisHuey('my_app')
@huey.periodic_task(crontab(minute="*/5"))
defping_site():
r = requests.get("https://example.com")
print(f"Pinged site: {r.status_code}")
# 需要单独启动 huey consumer 进程
# 命令行执行:huey_consumer.py my_app.huey
复杂度:适合小规模任务,比Celery轻量得多,但同样支持分布式。
国内替代:如果你在阿里云/腾讯云上,可以直接用 函数计算(FC) + 定时触发器,效果类似但无需自己维护队列。
把邮箱变成数据库
你每天手动下载附件,它帮你自动归类、解析、存盘。
# 环境:Python 3.6+,支持IMAP协议
from imbox import Imbox
with Imbox("imap.gmail.com",
username="me@gmail.com",
password="mypassword",
ssl=True) as imbox:
for uid, msg in imbox.messages(unread=True):
print(msg.subject, msg.sent_from)
# 可进一步解析附件、保存到本地
应用场景:自动下载发票、提取验证码、监控客服邮件。
⚠️ 注意:国内QQ邮箱、163邮箱需开启“IMAP/SMTP服务”并生成授权码,不能用登录密码直接连接。
SoundCloud自动化下载器
像一个DJ助手,你告诉它“我要这位艺术家的所有作品”,它就去整理成MP3文件。
# 环境:需安装 scdl (pip install scdl)
import subprocess
subprocess.run(["scdl", "-l", "https://soundcloud.com/artist/track", "-p", "./downloads"])
# 执行后会下载音频到指定目录
适用场景:音频数据集构建、个人存档、语音识别预处理。
国内类比:如果你需要批量下载网易云音乐或QQ音乐的试听片段,可参考 NeteaseCloudMusicApi 项目,但版权问题需自行评估。
绕过Twitter API的“挖掘机”
别人排队领号(申请API Key),你直接从后门进去翻数据。
# 环境:Python 3.6+,但注意Twint已不再维护,建议使用其fork: twint-scraper
import twint
c = twint.Config()
c.Search = "python"
c.Limit = 10
c.Store_csv = True
c.Output = "tweets.csv"
twint.run.Search(c)
# 生成tweets.csv,包含10条相关推文
复杂度:无API限制,但易被平台风控,需控制频率。
⚠️ 注意:2024年后Twitter/X大幅收紧爬虫,Twint原版已失效。国内类似需求可参考微博爬虫
weibo-scraper或抖音爬虫,但务必遵守平台规则,仅用于个人学习。
跨浏览器自动化“三栖特工”
Selenium是普通司机,Playwright是特技车手——还能同时开三辆车(Chromium、Firefox、WebKit)。
# 环境:Python 3.7+,pip install playwright && playwright install
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.firefox.launch(headless=False) # 可见模式调试
page = browser.new_page()
page.goto("https://example.com")
print(page.title())
browser.close()
# 输出:Example Domain
扩展思考:Playwright支持录制操作生成代码(playwright codegen),对复杂交互场景极友好。
国内实践:在阿里云、华为云等环境下,可结合无头模式做UI自动化测试,比Selenium稳定且速度快约30%。
绕过YouTube API的“白嫖搜索”
别人求着Google给API Key,你直接调用这个库像普通人搜索一样获取结果。
# 环境:Python 3.6+
from youtubesearchpython import VideosSearch
videos = VideosSearch("python自动化", limit=3)
results = videos.result()
for video in results['result']:
print(video['title'], video['link'])
# 输出:三条视频标题和链接
应用场景:构建教程推荐机器人、自动化视频采集。
⚠️ 注意:该库无官方API稳定,若用于商业项目建议配合官方YouTube Data API v3,避免因结构变动导致崩溃。
国内互联网自动化“三板斧”
以上库多为国外服务设计,但在国内环境下,有几个本土化思路可以举一反三:
itchat(已失效)、wxauto(Windows版)、企业微信APIpyppeteer-stealth 或 playwright-stealth 插件,并配置动态代理池python-dotenv | ||
while True: time.sleep() | ||
headless=False 下调试,确认元素选择器稳定 | ||
robots.txt |
技术圈里有个段子:“程序员最讨厌的事,就是自己手动做重复的事。” 这9个库,本质上都是“懒人哲学”的产物——它们让你把时间花在思考业务逻辑上,而不是跟验证码、API限流、浏览器驱动较劲。
但别忘了,自动化是一把双刃剑。你能用它帮同事自动下载发票,别人也可能用它刷流量、盗数据。技术无罪,但使用技术的人要有底线。
你在工作中最想“自动化”但迟迟没动手的场景是什么?是每天整理报表?还是定时监控竞品价格?或者想做一个自动回复的微信机器人?

长按👇关注- 数据STUDIO -设为星标,干货速递
