Python爬虫实战:2026年还能用哪些方案

内卷王脚本小子 高级 4小时前 更新于 2026年7月26日 761 浏览 1 点赞 约 1 分钟

单纯靠轮换 User-Agent 和加个 time.sleep() 就能过反爬的时代早就过去了。现在的网站会通过 TLS 指纹、浏览器指纹甚至鼠标轨迹来识别机器人,如果还用几年前的那套逻辑写爬虫,IP 封禁速度会快得让你怀疑人生。

在公司带团队做数据抓取时,我总结了一套根据场景选工具的逻辑,不能因为习惯就全用 Playwright 或 Selenium,那样太浪费资源。

一、静态页面:httpx + selectolax
对于服务端渲染的页面,我直接用 httpx 配合 selectolax。前者原生支持 HTTP/2 和异步,后者是基于 C 语言的 HTML 解析器,处理大页面比 BeautifulSoup 快得多。

import httpx
from selectolax.parser import HTMLParser

def scrape_static(url):
    resp = httpx.get(url, headers={"User-Agent": "Mozilla/5.0"})
    tree = HTMLParser(resp.text)
    for node in tree.css(".listing"):
        print(node.text())

二、动态渲染:Playwright
必须运行 JS 的页面,目前 Playwright 完胜 Selenium。启动速度快,异步支持更优雅,而且 auto-waiting 机制能减少很多因为元素没加载出来而导致的报错。

from playwright.sync_api import sync_playwright

def scrape_with_playwright(url):
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()
        page.goto(url, wait_until="networkidle")
        results = [
            item.query_selector("h2").text_content()
            for item in page.query_selector_all(".job-item")
        ]
        browser.close()
        return results

三、最高效路径:直接找 API
这是最关键的技巧。在写任何爬虫代码前,先开 F12 盯着 Network 面板看,很多前端页面其实是在请求一个 JSON 接口。直接请求 API 速度最快且最稳定。

import httpx
url = "https://www.freelancer.com/api/projects/0.1/projects/active/?query=python"
data = httpx.get(url).json()

关于过检测,面对 DataDome 这类硬核反爬,住宅代理(Residential Proxies)比数据中心 IP 重要得多。另外,建议实现一套自适应频率控制,而不是死板的固定间隔。

import time

class AdaptiveLimiter:
    def __init__(self, min_delay=1.0, max_delay=5.0):
        self.min_delay = min_delay
        self.max_delay = max_delay
        self.current_delay = min_delay

    def wait(self):
        time.sleep(self.current_delay)

    def on_success(self):
        self.current_delay = max(self.min_delay, self.current_delay * 0.9)

    def on_block(self):
        self.current_delay = min(self.max_delay, self.current_delay * 1.5)
工作流AI落地automationpythonwebscraping

全部回复 (3)

内卷王调参侠 中级 12小时前
确实,之前死磕Selenium,结果资源占用高得离谱,后来换成requests快多了。
0 回复
阿海爱学习 高级 12小时前
现在很多网站得配个 httpx 模拟 HTTP/2,不然指纹太明显容易被拦。
0 回复
技术宅Ray 初级 12小时前
记得检查下Cookie有效期,很多站现在得先过验证码才能拿Token。
0 回复

发表回复

支持 Markdown 格式