每天上班第一件事就是登录公司系统、查邮件、看有没有新通知。时间一长,这些重复操作让人烦不胜烦。其实,用Python写个简单的网络脚本,就能自动帮你完成这些事,省时又省力。
为什么选Python?
Python语法简单,库也多。像requests处理网页请求,BeautifulSoup解析页面内容,selenium模拟浏览器操作,基本你想干的网络相关的事,都有现成工具可用。哪怕你是半路出家的非程序员,也能几天上手。
自动查天气的小脚本
比如你每天早上都想看看天气决定穿什么,与其手动打开网页,不如让Python帮你跑一趟。下面这个小例子,用requests获取天气页面内容:
import requests
from bs4 import BeautifulSoup
url = "https://example-weather-site.com/beijing"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
temp = soup.find('span', class_="temp").text
print(f"当前温度:{temp}")
运行一下,温度直接打印出来。你可以把它加到开机启动项里,或者用任务计划程序每天早上8点自动执行一次。
登录网站自动打卡
有些公司要求每天在内网打卡,偏偏你还容易忘记。这时候可以用requests模拟登录。大多数网站登录其实就是发一个POST请求,带上用户名和密码:
import requests
session = requests.Session()
login_url = "https://company-intranet.com/login"
payload = {
'username': 'your_name',
'password': 'your_pass'
}
session.post(login_url, data=payload)
# 登录后才能访问的页面
resp = session.get("https://company-intranet.com/clock-in")
if "打卡成功" in resp.text:
print("已打卡")
注意,实际使用时要分析目标网站的登录接口,别乱发请求。另外,密码别明文写在代码里,可以存在环境变量或配置文件中。
遇到验证码怎么办?
很多网站有验证码,光靠requests搞不定。这时候可以换selenium,它能打开真实浏览器,模拟人点击、输入的操作:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com/login")
driver.find_element(By.NAME, "username").send_keys("your_name")
driver.find_element(By.NAME, "password").send_keys("your_pass")
driver.find_element(By.ID, "login-btn").click()
虽然selenium慢一点,但适合处理复杂页面,比如那些用JavaScript动态加载内容的网站。
别忘了设置定时任务
脚本写好了,得让它自动跑才行。Windows可以用“任务计划程序”,Linux和Mac用cron。比如每天9点执行打卡脚本:
0 9 * * * /usr/bin/python3 /home/user/scripts/clock_in.py
只要电脑开着,它就会准时执行,你连打开都省了。
用Python写网络脚本,不是程序员的专利。只要你愿意花一小时学点基础,后续能省下成百上千分钟。生活里那些重复、无聊、必须做的事,交给代码去办,自己专心该干的正事。