全球主机交流论坛

标题: 搞了个爬虫框架 [打印本页]

作者: joF3hzd97uHgKu    时间: 2021-4-28 15:26
标题: 搞了个爬虫框架
鉴于市面上没有让自己满意的网页爬取软件,于是自己搞了一个(现在主要是在内部用)。


发这个帖子主要是想问问:大家一般对爬虫、网页监控或者其他的网络工具都有什么功能要求?


下面是我们开发软件的一些说明:

使用 electron 框架开发的,语言肯定就是 JavaScript 了[部分模块使用其他软件开发的]

桌面软件,支持 windows mac Linux【也许需要 “云” 支持?运行部署到 Docker 中???】

* 数据提取 (爬虫)
* 网页内容监控(类似:OpenWebMonitor)
* 关键词分析 (实际上是输入一个关键词,提取百度 和 Google 搜索引擎 前 n 条内容返回,还可以提取 相关搜索 词)
* 网页内容分析(分析单个页面,获取网页内容、图片、视频之类的数据)
* OCR 识别(有些页面防止的价格信息、手机号之类的可能是图片,并不是数字,可以使用 OCR 来识别出具体的内容)
* 验证码识别(可以识别 简单 的图片验证码【不能识别很多大网站的验证码】,可能这个功能并不会发布出来)


URL 访问使用的是真实的浏览器(当前在 mac、Linux 上使用的是Chrome, windows 上是 Edge),因此可以执行页面的 JS 代码。

实际上数据提取也是执行用户指定的 js 代码(用户的 js 代码是在浏览器访问页面的上下文内执行,因此可以访问到页面的所有内容)

主要缺点也是:需要用户自己会写 js 代码.(只需要会 数据提取的代码就可以了,不需要关心调度和存储)

数据提取代码的例子可以看 https://github.com/QiYuTechOrg/extract 【里面有 百度 和 Google 搜索结果的提取代码】

作者: jiangyi    时间: 2021-4-28 15:28
支持开源,虽然已经有工具了
作者: etc小号    时间: 2021-4-28 15:30
感谢大佬分享干货
作者: 我是坏虫    时间: 2021-4-28 15:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: joF3hzd97uHgKu    时间: 2021-4-28 15:33
我是坏虫 发表于 2021-4-28 15:31
搭建最好简单点,比如需要的依赖好找点,94imm我搞了好几天才安装好 ...

桌面软件,不需要搭建啊

下载到桌面、点击就运行
作者: b66667777    时间: 2021-4-28 15:33

作者: 我是坏虫    时间: 2021-4-28 15:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: 锦安    时间: 2021-4-28 15:46
首先不需要桌面软件,
其次支持的脚本多一点, 内置好分布式调度啊, 告警啊 什么的
作者: joF3hzd97uHgKu    时间: 2021-4-28 15:52
锦安 发表于 2021-4-28 15:46
首先不需要桌面软件,
其次支持的脚本多一点, 内置好分布式调度啊, 告警啊 什么的 ...

你的意思是最好是 Web 版本的(可以通过浏览器直接管理)?

支持的脚本多一点?没明白这个啥意思,是兼容多一些常用软件的意思吗(比如:Wordpress 之类的)?
作者: jpfree    时间: 2021-4-28 15:56
不懂,能有破解版7.6火车头一半的功力就行了。。



作者: adminplus    时间: 2021-4-28 15:57
js爬虫效率有点低吧,取决于浏览器,应该改成node
作者: yingaoyun    时间: 2021-4-28 16:03
当然是请求方式多样些 get post header自定义之类的
作者: joF3hzd97uHgKu    时间: 2021-4-28 16:15
adminplus 发表于 2021-4-28 15:57
js爬虫效率有点低吧,取决于浏览器,应该改成node

用浏览器效率是比较低。

直接发送请求不好模拟页面内的 JS 动态。

这是 爬取质量和爬取效率的选择,在这里我选了质量。

抓取速度的话一台机器
2H   8GB 每天可以抓取 10万个页面,
2H 16GB 每天可以抓取 100 万个页面(浏览器比较吃内存)
作者: joF3hzd97uHgKu    时间: 2021-4-28 16:16
yingaoyun 发表于 2021-4-28 16:03
当然是请求方式多样些 get post header自定义之类的

使用浏览器模拟访问的,不需要这些吧,浏览器自动就替你做好了。
作者: 柯林斯    时间: 2021-4-28 16:16
支持大佬分享干货
作者: dbug    时间: 2021-4-28 16:18
能带上网页内容变化监控就好了
作者: joF3hzd97uHgKu    时间: 2021-4-28 16:20
dbug 发表于 2021-4-28 16:18
能带上网页内容变化监控就好了

现在就有监控 和 通知,就是通知是通知到本机的,还不能通知到别的地方。

你是需要通知到微信之类的吗?
作者: eMGG    时间: 2021-4-28 16:29
我也在做一个爬虫框架,不过做着做着没啥动力弃坑了。大概就是可以在web界面拖拽来编写抓取规则流程,生成一个抓取规则流水线。然后让服务器去自动根据规则去抓取。抓取的引擎有两种,一种是直接http请求的,效率高,但是无法解析js。另一种是用selenium无头浏览器模拟访问的。两种引擎配合可以实现复杂的抓取。后端服务器支持分布式agent去捉取,主要是解决ip问题。大概这样,做了一点点,就懒得做下去了。
作者: joF3hzd97uHgKu    时间: 2021-4-28 16:39
eMGG 发表于 2021-4-28 16:29
我也在做一个爬虫框架,不过做着做着没啥动力弃坑了。大概就是可以在web界面拖拽来编写抓取规则流程,生成 ...

想法差不多。

主要是限制除了 IP 就是 验证码 了。

Web 界面拖拽自动生成规则 这个我想的是 直接生成代码,这样方便微调(不像规则那么死板)。

我追求的是灵活性 和 质量,不太追求大规模爬取。

作者: 纱雾    时间: 2021-4-28 16:48
客户端渲染的页面直接爬接口。速度快很多
作者: 锦安    时间: 2021-4-28 17:46
joF3hzd97uHgKu 发表于 2021-4-28 15:52
你的意思是最好是 Web 版本的(可以通过浏览器直接管理)?

支持的脚本多一点?没明白这个啥意思,是兼 ...

你的意思是最好是 Web 版本的(可以通过浏览器直接管理)?
re: 我的意思是不需要界面, 纯框架就可以了

支持的脚本多一点?没明白这个啥意思,是兼 ...
re:我的意思是支持的脚本语言多一点, 包括不限于 js, py, 等等
作者: gssasd    时间: 2021-4-28 18:05
最好能用node.js 安装到宝塔的后台。
作者: 祭徐坤    时间: 2021-4-28 18:10
内部是哪里内部?
作者: jilyzx    时间: 2021-4-28 18:15
matk
作者: joF3hzd97uHgKu    时间: 2021-4-28 18:53
锦安 发表于 2021-4-28 17:46
你的意思是最好是 Web 版本的(可以通过浏览器直接管理)?
re: 我的意思是不需要界面, 纯框架就可以了
re: 我的意思是不需要界面, 纯框架就可以了


这个目前可能不太好抽出来,因为很多事情需要界面去操作。

目前可以支持从命令行启动(去完成指定的任务),后期可能也会支持通过 HTTP API 控制。

re:我的意思是支持的脚本语言多一点, 包括不限于 js, py, 等等


js 肯定支持,但是 JS 以外的语言,整合进数据抓取比较难
(因为浏览器不支持运行别的语言,在考虑支持 WASM 这样就可以任何能编译到 WASM 的语言),
整合进其他逻辑应该没啥问题(目前还没有打算支持)。
作者: joF3hzd97uHgKu    时间: 2021-4-28 18:54
gssasd 发表于 2021-4-28 18:05
最好能用node.js 安装到宝塔的后台。

这个目前不太可能,但是后面我准备搞个 Web 管理的版本,应该可以支持一键安装。
作者: joF3hzd97uHgKu    时间: 2021-4-28 18:55
祭徐坤 发表于 2021-4-28 18:10
内部是哪里内部?

我们公司内部啊
作者: gssasd    时间: 2021-4-28 19:49
joF3hzd97uHgKu 发表于 2021-4-28 18:55
我们公司内部啊



我手头有个别人17年开发的一个采集,现在还在一直用没啥问题。
作者: dbug    时间: 2021-4-28 22:45
joF3hzd97uHgKu 发表于 2021-4-28 16:20
现在就有监控 和 通知,就是通知是通知到本机的,还不能通知到别的地方。

你是需要通知到微信之类的吗? ...

可以加入这个https://443502.xyz/thread-808429-1-1.html
mjj版本自定义的企业微信推送
作者: joF3hzd97uHgKu    时间: 2021-4-28 22:49
dbug 发表于 2021-4-28 22:45
可以加入这个https://443502.xyz/thread-808429-1-1.html
mjj版本自定义的企业微信推送 ...

接入企业微信应该挺容易的,后面可以加上。
作者: talaon    时间: 2021-4-28 23:53
matk
作者: ins888    时间: 2021-4-30 10:19
win桌面版的那里可以下载呀
作者: joF3hzd97uHgKu    时间: 2021-4-30 16:28
ins888 发表于 2021-4-30 10:19
win桌面版的那里可以下载呀

现在还没有对外发布。

过段时间发布我会把下载链接回复到这儿。
作者: nelsonsylar    时间: 2021-4-30 17:39
mark!开源吗
作者: ins888    时间: 2021-4-30 17:42
joF3hzd97uHgKu 发表于 2021-4-30 16:28
现在还没有对外发布。

过段时间发布我会把下载链接回复到这儿。

大佬666   wp有些主题比较特殊  会针对这些主题做发布适配吗

比如日主题   7b2  lightsns  包括typecho一些热门主题的发布适配
作者: joF3hzd97uHgKu    时间: 2021-4-30 17:53
ins888 发表于 2021-4-30 17:42
大佬666   wp有些主题比较特殊  会针对这些主题做发布适配吗

比如日主题   7b2  lightsns  包括typecho ...

现在只有抓取还没有通用的发布模块【因为我们用不到,我们的系统都是自己开发的,现在只能支持 HTTP 接口发布,当然如果有开发能力,直接读取 SQLite 数据库,自己发布也可以】。

我现在在考虑添加发布模块,可能会从 WordPress 默认的主题开始。

你说的其他主题不能保证都有,软件肯定会支持插件(JavaScript 语言)

(即使没有也可以自己写)。
作者: z6045670    时间: 2021-4-30 18:20
能不能搞成不会js也能用的啊? 或者照葫芦画瓢就能搞定的?
只会用火车头的撸过。。
不会用爬虫 无奈只能用火车
还有能否实现火车的一些功能 例如翻译 替换 插入 随机 等……
作者: joF3hzd97uHgKu    时间: 2021-4-30 19:00
z6045670 发表于 2021-4-30 18:20
能不能搞成不会js也能用的啊? 或者照葫芦画瓢就能搞定的?
只会用火车头的撸过。。
不会用爬虫 无奈只能用 ...
能不能搞成不会js也能用的啊? 或者照葫芦画瓢就能搞定的?


会搞一些通用的模版出来。

翻译


这个的应用场景是啥?

替换、插入

可以放到通用的模版里面。

随机


这是啥意思?随机获取数据?还是随机发布数据?
作者: z6045670    时间: 2021-5-1 12:47
joF3hzd97uHgKu 发表于 2021-4-30 19:00
会搞一些通用的模版出来。

通用模板 尽量有可演变的意义 就是说不懂js的也能照葫芦画瓢的举一反三出来哈
“翻译” 是指翻译插件 例如百度翻译 谷歌翻译  英转汉 日转德 采集到的内容翻译后再发布 翻译这个还要考虑到别翻译html标签等。
批量“替换”“插入” 就不用说了
“随机” 例如指定随机数字(1-9999 222-345) 例如随机插入(指定字符后插入 插入数量) ……

其实能满足火车头能做到的 就已经成功了 如果能锦上添花就更牛逼了
bb这么多没有教你做事的意思 不要误解哦 只是个建议哈哈 楼主是大佬
作者: joF3hzd97uHgKu    时间: 2021-5-1 18:34
z6045670 发表于 2021-5-1 12:47
通用模板 尽量有可演变的意义 就是说不懂js的也能照葫芦画瓢的举一反三出来哈
“翻译” 是指翻译插件 例 ...

建议都很好啊。

但是百度他们的翻译 API 都是收费的,集成进去应该没啥难度。

随机插入的场景是啥? 没太明白这个具体做什么用。
作者: z6045670    时间: 2021-5-1 19:36
本帖最后由 z6045670 于 2021-5-1 19:38 编辑
joF3hzd97uHgKu 发表于 2021-5-1 18:34
建议都很好啊。

但是百度他们的翻译 API 都是收费的,集成进去应该没啥难度。


百度有免费的额度 具体忘了 因为没用过
谷歌是免费的 但需要慢速 否则封IP

随机插入  例如一个文章里有多个</p>对吧  可以将预设的文本里的 随机一行或多行 插入到随机</p>(或指定 例如第2个</p>)前面或后面
火车头的预设文本


大佬 你的神器发布的时候 一定要pm我啊  我要尝鲜  也不枉费我在这关注哈




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4