Scraperr能从网页中抓取数据

在这里插入图片描述

什么是 Scraperr ?

Scraperr 是一个自托管的 Web 应用程序,允许用户通过 XPath 指定元素从网页中抓取数据。用户可以提交要抓取的 URL 和相应元素,结果将显示在表格中。用户可以下载作业结果的 Excel 表,以及重新运行该作业的选项。

反向代理

安装完成后,如果直接用 IP 访问,虽然能看到主界面,但是点什么都反应,所以我们需要通过反代实现域名的解析。

官方用的是 traefik,这个老苏不熟悉,所以换成了 nginx proxy manager

因为无公网访问需求,本文采用了 tailscale + npm 方案

文章传送门:用自定义域名访问tailscale节点

假设我们实际访问地址为: https://pc.xxsu.cf

域名局域网地址备注
pc.xxsu.cfhttp://192.168.0.197:8124Scraperr 的访问地址

npm 中的设置

SSL 都勾选了

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 scraperr ,选择第一个 jpyles0524/scraperr,只有一个 latest 版本,双击直接下载

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  scraperr:
    image: jpyles0524/scraperr:latest
    container_name: webscrape-app
    init: True
    ports:
      - 8124:8000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - MONGODB_URI=mongodb://root:example@webscrape-mongo:27017
      - SECRET_KEY=your_secret_key
      - ALGORITHM=HS256
      - ACCESS_TOKEN_EXPIRE_MINUTES=600
      - HOSTNAME=pc.xxsu.cf
    
  mongo:
    image: mongo:4.4.29
    container_name: webscrape-mongo
    restart: always
    volumes:
      - ./data:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example

注意事项:

  1. 为避免在某些机器上出现指令不兼容的情况,WARNING: MongoDB 5.0+ requires a CPU with AVX support, and your current system does not appear to have that!,老苏用了 mongo:4.4.29,而不是 mongo:latest
  2. 如果 MONGO_INITDB_ROOT_USERNAMEMONGO_INITDB_ROOT_PASSWORD 修改了, MONGODB_URI 要相应的变化;
  3. HOSTNAME :设置为域名;

然后执行下面的命令

# 新建文件夹 scraperr 和 子目录
mkdir -p /volume1/docker/scraperr/data

# 进入 scraperr 目录
cd /volume1/docker/scraperr

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 https://pc.xxsu.cf 就能看到主界面,

第一次要注册账号,点 Login --> NO ACCOUNT? SIGN UP

注册成功会有提示

登录成功后

用法

测试抓个标题看看,还是以老苏的博客为例

  • URL:老苏的博客地址为 https://laosu.tech
  • Multi-Page Scrape:看需要,这里没有勾选,所以只会抓取第一个(后来测试勾选了会失败)
  • Name:因为是抓标题,所以输入了 title
  • XPath:可以在浏览器中获取到/html/body/main/div[2]/div[1]/article/header/h2/a

+ 号添加,可以设定多个条件

submit 提交到任务队列

很快就有结果

可以下载 Excel 文件

API

Scraperr 提供了 API ,打开 https://pc.xxsu.cf/docs 可以找到该 API 的文档页面

参考文档

jaypyles/Scraperr: Self-hosted webscraper.
地址:https://github.com/jaypyles/Scraperr

Update to Self-Hosted Webscraper “Scraperr” : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1e8ryua/update_to_selfhosted_webscraper_scraperr/

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值