AI+爬虫 爬虫宝

场景

在很多时候,有很多爬虫的需求,其实需求都是大同小异,不过是在某某网页上爬取某某东西。把这些东西给到业务。以往的做法是:每一个需求写一个c#或者python脚本或者应用,进行爬取,这相当的费时费力,我个人是特别讨厌做一些重复的工作的。现在人工智能发展迅速,我们可不可以使用AI帮我们完成这件事呢?答案是可以的,勇敢的人先享受世界,所以爬虫宝应运而生。

技术栈

爬虫宝的技术栈是:java + python 。我的主语言并非Python,我对Python的熟悉程度不过是继承于java,我对它内部构造其实了解的不多,但是它在爬取网页或者做一些脚本,学习规则上面的复杂度明显是比java小的。
在这里python负责的根据需求 使用自动化工具去浏览器搜索,点击和补偿(所谓补偿,就是如果爬虫挂壁了,我们可以利用Python同样完成这件事,补偿的实现方式是规则自学习,这个下面会介绍)将结果回传java,java负责任务的调度,还要AI接口的调用和结果的保存(实现DataHandler即可实现你自己的保存方式)。如果AI无额度了,或者网络出现了问题,回调Python的补偿爬虫。

案例梳理

例如:我要去亚马逊 爬取所有 自行车产品的销量,评论等信息。

无自动化时代

那么我们第一步就是打开亚马逊,第二步就是在引擎上搜索 “自行车”,第三步 挨个点击自行车,一个个拉下来,结果少还好说,多了人废了。有时候人操作说不定还搞错了也未可知。就算人出色的完成了,你的领导告诉你,自行车没什么用,我要山地车。你是不是很心累?

自动化时代

我们写一个自动化程序,帮我们爬取我们要的东西,可能 自行车 改为 山地车就完事了,你也可以配置,但是如果 今天爬 亚马逊,明天不爬亚马逊了,明天要一个 Bestbuy 上的电脑产品,说 业务后天就要,蛋疼了 ,通宵了一晚上。这样也不好

智能爬虫时代

我写好了程序,今天要亚马逊的自行车 好,自行车好啊,我配置 亚马逊网址 关键字 自行车。 第二天 Bestbuy 上的电脑产品 好,电脑好,我配置 Bestbuy 网址 电脑产品。 实现方式就是 AI + 自动化帮你爬取,我不用管这个页面长什么样子,我也不用管有多少东西,我甚至不用管你有多少页。我直接自动化 打开你的浏览器 打开亚马逊网页 ,好了,OK了 此时,我的第一步 完成了,第一步完成了之后,开始校验 是否打开了网页,打开了,OK,那么此时会将html传到后台 AI分析,搜索框在哪里,怎么找到它,返回搜索框的元素,点击元素,OK了结果出来了,继续Python回传页面,继续分析,这是商品页,有商品了,爬下来,就这样一步步的,你拿到了所有东西,你人呢,就坐在哪里,喝喝咖啡,逛逛GITHUB,完事了,OK了。

结束

内测中,代码预计将于 2024年1月末上线gitte/github。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/234248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中创建线程池工具类

import java.util.concurrent.*;/**多线程工具类 */ public class ThreadPoolUtils {private static int CAPACITY 10000;// 线程池核心线程数public static int CORE_POOL_SIZE 10;// 线程池最大线程数private static int MAXIMUM_POOL_SIZE 30;// 额外线程空状态生存时间p…

前端视角看待IT圈茶余饭后的鄙视链

在IT职业圈或技术圈中,鄙视链是一个普遍存在的现象。鄙视链是指不同职业、技术、公司等之间存在的相互鄙视、轻视的关系。虽然这种关系并不合理,但它确实存在,而且在一定程度上影响着人们的心态和行为。 作为一名前端开发者,我深…

Java基础知识回顾

Java基础 一、Java概述 1、Java技术体系平台 类型简介JavaSE 标准版支持面向桌面级的应用JavaEE 企业版支持为企业开发的应用JavaME 小型版运行在移动终端的平台 2、Java重要的特点 面向对象的语言(OOP) 健壮的语言,具有强类型转换、异常…

【Docker】基础篇

文章目录 Docker为什么出现容器和虚拟机关于虚拟机关于Docker二者区别: Docker的基本组成相关概念-镜像,容器,仓库安装Docker卸载docker阿里云镜像加速docker run的原理**为什么容器比虚拟机快**Docker的常用命令1.帮助命令2.镜像相关命令3.容…

hadoop运行jar遇到的一个报错

报错信息: 2023-12-19 14:28:25,893 INFO mapreduce.Job: Job job_1702967272525_0001 failed with state FAILED due to: Application application_1702967272525_0001 failed 2 times due to AM Container for appattempt_1702967272525_0001_000002 exited with…

SpringMVC拦截器

拦截器 1.拦截器概念2.拦截器开发2.1环境准备2.2拦截器开发流程 3 拦截器参数1. 前置处理方法2. 后置处理方法3 完成处理方法4.配置多个拦截器 1.拦截器概念 (1)浏览器发送一个请求会先到Tomcat的web服务器 (2)Tomcat服务器接收到请求以后,会去判断请求的是静态资源…

可实现RSSD云硬盘120万IOPS的SPDK IO路径优化

一. 简介 用户对超高并发、超大规模计算等需求推动了存储硬件技术的不断发展,存储集群的性能越来越好,延时也越来越低,对整体IO路径的性能要求也越来越高。在云硬盘场景中,IO请求从生成到后端的存储集群再到返回之间的IO路径比较…

【Java】网络编程-UDP字典服务器客户端简单代码编写

上文讲了UDP回响服务器客户端简单代码编写 本文将讲述UDP字典服务器客户端简单代码编写。所谓回显,就是指客户端向服务器发送一个报文,从服务器那里得到一条一模一样的回响报文 而我们的字典功能呢,则是实现了输入中文,得到对应…

MMCV,scoreSDE,rectifiedFlow代码

MMCV,scoreSDE,rectifiedFlow代码的思想都是将各种对象,包括函数 和模型,都都写到一个字典里面,用的时候用关键字调用。

智能物联网汽车3d虚拟漫游展示增强消费者对品牌的认同感和归属感

汽车3D虚拟展示系统是一种基于web3D开发建模和VR虚拟现实技术制作的360度立体化三维汽车全景展示。它通过计算机1:1模拟真实的汽车外观、内饰和驾驶体验,让消费者在购车前就能够更加深入地了解车辆的性能、特点和设计风格。 华锐视点云展平台是一个专业的三维虚拟展…

Pytorch:backward()函数详解

.backward() .backward() 是 PyTorch 中用于自动求导的函数,它的主要作用是计算损失函数对模型参数的梯度,从而实现反向传播算法。 在深度学习中,我们通常使用梯度下降算法来更新模型参数,使得模型能够逐步逼近最优解。 在梯度下…

linux中deadline调度原理与代码注释

简介 deadline调度是比rt调度更高优先级的调度,它没有依赖于优先级的概念,而是给了每个实时任务一定的调度时间,这样的好处是:使多个实时任务场景的时间分配更合理,不让一些实时任务因为优先级低而饿死。deadline调度…

(保姆级教程)一篇文章,搞定所有Linux命令,以及tar解压缩命令,wget、rpm等下载安装命令,Linux的目录结构,以及用户和用户组

文章目录 Linux命令1. Linux目录结构2. 基本命令(了解)3. 目录(文件夹)命令列出目录切换目录创建目录删除目录复制目录移动和重命名目录 4. 文件命令创建文件编辑文件编辑文件时的其他操作 查看文件移动/重命名文件复制文件删除文…

机器学习---聚类(原型聚类、密度聚类、层次聚类)

1. 原型聚类 原型聚类也称为“基于原型的聚类” (prototype-based clustering),此类算法假设聚类结构能通过一 组原型刻画。算法过程:通常情况下,算法先对原型进行初始化,再对原型进行迭代更新求解。著 名的原型聚类算法&#…

git或svn提交消息时,fix、feat等命令的含义

在git或svn提交消息时,可以使用特定字符来表示特定的功能,这些字符的使用可以提高提交描述的可读性和易用性。 具体来说,这些命令的含义如下: fix: 该提交用于修复错误或问题。feat: 该提交用于添加新功能。docs: 该提交用于更新…

基于Redis限流(aop切面+redis实现“令牌桶算法”)

令牌桶算法属于流量控制算法,在一定时间内保证一个键(key)的访问量不超过某个阈值。这里的关键是设置一个令牌桶,在某个时间段内生成一定数量的令牌,然后每次访问时从桶中获取令牌,如果桶中没有令牌&#x…

【机器学习】梯度下降法:从底层手写实现线性回归

【机器学习】Building-Linear-Regression-from-Scratch 线性回归 Linear Regression0. 数据的导入与相关预处理0.工具函数1. 批量梯度下降法 Batch Gradient Descent2. 小批量梯度下降法 Mini Batch Gradient Descent(在批量方面进行了改进)3. 自适应梯度…

Redis 实现全局唯一ID

分布式架构中实现全局唯一ID的需求非常常见,业界上也有很多的工具可直接使用。以下总结一下在面试过程中被问到如何使用Redis 实现分布式全局唯一ID的问题 自定义全局唯一ID生成器 @Component public class RedisIdWorker {/*** 开始时间戳*/private static final long BEGIN…

C++相关闲碎记录(17)

1、IO操作 (1)class及其层次体系 (2)全局性stream对象 (3)用来处理stream状态的成员函数 前四个成员函数可以设置stream状态并返回一个bool值,注意fail()返回是failbit或者badbit两者中是否任一…

【重点】【DP】152.乘积最大的子数组

题目 法1:DP 参考:https://blog.csdn.net/Innocence02/article/details/128326633 f[i]表示以i结尾的连续子数组的最大乘积,d[i]表示以i结尾的连续子数组的最小乘积 。 如果只有正数,我们只需要考虑最大乘积f[i];有负…