13 Feet Ladder - 自托管付费墙绕过工具

13 Feet Ladder

一个类似12ft.io但可自托管的付费墙绕过工具,支持12ft.io无法处理的网站。

功能特性

  • 模拟GoogleBot:通过Google爬虫用户代理获取网页完整内容
  • 自托管解决方案:可在本地或私有服务器部署
  • 支持多种付费墙:特别针对Medium、纽约时报等网站优化
  • 暗黑模式:提供用户友好的暗黑/明亮主题切换
  • 简单易用:只需输入URL即可获取无付费墙内容
  • Docker支持:提供容器化部署方案

安装指南

Docker方式安装

git clone https://github.com/wasi-master/13ft.git
cd 13ft
docker compose up

或直接拉取镜像:

docker pull wasimaster/13ft
# 或
docker pull ghcr.io/wasi-master/13ft:0.2.3

Python脚本方式安装

  1. 确保已安装Python
  2. 克隆仓库并安装依赖:
cd app/
python -m pip install -r requirements.txt
  1. 运行服务:
python portable.py

使用说明

  1. 访问本地服务(默认http://localhost:5000)
  2. 在输入框中输入目标URL
  3. 点击提交按钮获取无付费墙内容

API使用示例

curl -X POST http://localhost:5000/article -d "link=https://medium.com/some-paywalled-article"

核心代码

付费墙绕过核心逻辑

def bypass_paywall(url):
    """
    绕过指定URL的付费墙
    通过模拟GoogleBot请求获取完整内容
    """
    if url.startswith("http"):
        response = requests.get(url, headers=googlebot_headers)
        response.encoding = response.apparent_encoding
        return add_base_tag(response.text, response.url)

    try:
        return bypass_paywall("https://" + url)
    except requests.exceptions.RequestException as e:
        return bypass_paywall("http://" + url)

基础URL处理

def add_base_tag(html_content, original_url):
    """
    为HTML内容添加base标签
    确保页面资源能正确加载
    """
    soup = BeautifulSoup(html_content, 'html.parser')
    parsed_url = urlparse(original_url)
    base_url = f"{parsed_url.scheme}://{parsed_url.netloc}/"
    
    if parsed_url.path and not parsed_url.path.endswith('/'):
        base_url = urljoin(base_url, parsed_url.path.rsplit('/', 1)[0] + '/')
    
    # 添加base标签到HTML头部
    if not soup.find('base'):
        new_base_tag = soup.new_tag('base', href=base_url)
        if soup.head:
            soup.head.insert(0, new_base_tag)
        else:
            head_tag = soup.new_tag('head')
            head_tag.insert(0, new_base_tag)
            soup.insert(0, head_tag)
    
    return str(soup)

更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码

posted @ 2025-07-21 19:12  qife  阅读(47)  评论(0)    收藏  举报