什么是 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
注意事项:
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;MONGO_INITDB_ROOT_USERNAME 和 MONGO_INITDB_ROOT_PASSWORD 修改了, MONGODB_URI 要相应的变化;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.techMulti-Page Scrape:看需要,这里没有勾选,所以只会抓取第一个(后来测试勾选了会失败)Name:因为是抓标题,所以输入了 titleXPath:可以在浏览器中获取到/html/body/main/div[2]/div[1]/article/header/h2/a点 + 号添加,可以设定多个条件
点 submit 提交到任务队列
很快就有结果
可以下载 Excel 文件
Scraperr 提供了 API ,打开 https://pc.xxsu.cf/docs 可以找到该 API 的文档页面
jaypyles/Scraperr: Self-hosted webscraper.
地址:https://github.com/jaypyles/ScraperrUpdate to Self-Hosted Webscraper "Scraperr" : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1e8ryua/update_to_selfhosted_webscraper_scraperr/
@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。
微信扫一扫
关注该公众号