什么是爬虫,java爬虫,动态爬虫

前言

数据将成为像石油一样宝贵的资源?
在这里插入图片描述

石油通过不同的方式提取可以获得工业橡胶、柴油、汽油、航空煤油等各种不同的产物。

数据从某些方面来看是和石油一样,也是可以提炼的,不同视角去看数据会有不同的作用

比如拿到所有关于车的信息,包括车的销量,价格,购车群体信息等各种信息

  • 消费者角度:对比车的价格、质量、用户评价、品牌等相关信息,来决定要买哪一辆。

  • 车企:对比车的不同价格销量、不同供应商销量、不同的颜色销量、用户购买群体分析,分析以后发展方向。

  • 供应商:用户更喜欢什么材质的内饰,以后更多的生产哪些材料。

  • 售车顾问、二手车销售、修车商… … 他们都需要不同维度展示的关于车辆的信息。

离我们最近的爬虫

捜索引擎为什么能搜索出来这么多东西?因为他们有非常庞大的抓取系统,大家有没有注意到‘百度快照’
它是“通用爬虫”
在这里插入图片描述

另外一种叫做聚焦爬虫
聚焦爬虫是面向特定内容进行的爬虫,目的是为了满足对特定领域信息的需求.

正文

开放平台和爬虫区别

面对一个数据列表接口

  • 正常访问就可以看到数据,但是数据不能够按照批量的被拿走。

  • 开放平台是提供接口,提供调用方式,验证身份后就可以提供数据,这个可以批量获取数据,但是很多公司提供的相关服务是收费的。比如钉钉的开放平台有接口是可以给用户的钉钉发通知,chatgpt提供的接口是收费的。

爬虫是将网页视作数据来源,通过模拟请求,获取响应结果。 通过构造一个http请求获取响应内容

页面发什么内容模拟的请求也发一样的内容,他的头部带什么内容模拟的请求头部也带一样的内容,页面翻页请求也翻页。(动态爬虫)

相应的,页面响应中获取到的内容模拟的请求也能获取一样的内容,拿到数据后可以筛选获得有需要的数据。
在这里插入图片描述
在这里插入图片描述

package com.qdnsjly.spider;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.HttpRequestRetryHandler;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.StandardHttpRequestRetryHandler;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;import java.io.IOException;
import java.net.URISyntaxException;public class MockHttpDCD {static CloseableHttpClient httpClient = null;static {PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();// 总连接池数量connectionManager.setMaxTotal(150);// 可为每个域名设置单独的连接池数量
//        connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("xx.xx.xx.xx")), 80);// setConnectTimeout:设置建立连接的超时时间// setConnectionRequestTimeout:从连接池中拿连接的等待超时时间// setSocketTimeout:发出请求后等待对端应答的超时时间RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(1000).setConnectionRequestTimeout(2000).setSocketTimeout(3000).build();// 重试处理器,StandardHttpRequestRetryHandlerHttpRequestRetryHandler retryHandler = new StandardHttpRequestRetryHandler();httpClient = HttpClients.custom().setConnectionManager(connectionManager).setDefaultRequestConfig(requestConfig).setRetryHandler(retryHandler).build();}public static void main(String[] args) throws URISyntaxException, IOException {URIBuilder uriBuilder = new URIBuilder("https://www.dongchedi.com/motor/pc/car/brand/select_series_v2?aid=1839&app_name=auto_web_pc");HttpPost httpGet = new HttpPost(uriBuilder.build());httpGet.addHeader("content-type","application/x-www-form-urlencoded");httpGet.addHeader("cookie","ttwid=1%7C322xU5YuG-t4MEQVAUVZxyVvVTwAFawFhHhD3NCLVBE%7C1680152615%7C5857fde081bd6cfff9ddc69451d8e132d361c2a6a676cca803b856f83f320353; tt_webid=7216200492823987768; tt_web_version=new; is_dev=false; is_boe=false; Hm_lvt_3e79ab9e4da287b5752d8048743b95e6=1680152615; _gid=GA1.2.1083416773.1680152616; _gat_gtag_UA_138671306_1=1; s_v_web_id=verify_lfunhjw1_blQfYtGE_CVnj_4Eav_A4wl_0LYoJmAlwlM3; city_name=%E6%9D%AD%E5%B7%9E; Hm_lpvt_3e79ab9e4da287b5752d8048743b95e6=1680152634; _ga=GA1.1.862026144.1680152616; msToken=ZPiC6WtWFc_qXQghNA8N3VxwvmAkkaSUAKvfKVBPwpeM0OnSYwFHRzKMALHuegSE7_KaLMyFGBOV_z6bqWe2VDo_ijSy7-dH8CuC0i_nyK8=; _ga_YB3EWSDTGF=GS1.1.1680152615.1.1.1680152640.35.0.0");httpGet.addHeader("origin","https://www.dongchedi.com");httpGet.addHeader("pragma","no-cache");httpGet.addHeader("referer","https://www.dongchedi.com/auto/library/x-1-x-x-x-x-3-x-x-x-x-x-x-x-x-x-x-x");httpGet.addHeader("sec-ch-ua","\"Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111\"");httpGet.addHeader("sec-ch-ua-platform","\"macOS\"");httpGet.addHeader("sec-fetch-dest","empty");httpGet.addHeader("sec-fetch-mode","cors");httpGet.addHeader("sec-fetch-site","same-origin");httpGet.addHeader("user-agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36");HttpContext context = HttpClientContext.create();CloseableHttpResponse response = httpClient.execute(httpGet,context);int statusCode = response.getStatusLine().getStatusCode();System.out.println(statusCode);HttpEntity entity = response.getEntity();if (null != entity) {String resStr = EntityUtils.toString(entity, "utf-8");JSONObject jsonObject = JSON.parseObject(resStr);System.out.println(jsonObject);JSONObject data = jsonObject.getJSONObject("data");JSONArray series = data.getJSONArray("series");for (Object serie : series){JSONObject car = JSON.parseObject(serie.toString());System.out.println("车企:" +car.getString("brand_name") +",车名:"+ car.getString("outter_name") +",价位区间"+ car.getString("pre_price"));
//                System.out.println(car);}}}
}

这里使用的是CloseableHttpClient,它是HttpClient的子接口,对比原来的httpClient优势在于可以构建多线程并发环境。(需要你把cookie换成你自己的

在爬取过程中会遇到很多的问题,因为所有网站都不希望数据被别人轻易拿走,但是又不能让真正想要访问的正常用户获取不到要看到的内容。
这个接口是可以直接获取到一个json的信息,但是如果获取到的不是json,而是一个页面,就需要用Xpath去抽取页面元素中的内容。

XPath是一门在XML和HTML文档中查找信息的语言

攻防一体:当爬虫来敲门

攻击:

通过模拟请求获取数据的过程中,迅速翻页,换参数,不停的发请求
在这里插入图片描述

防御:

1.时间段内ip限制访问次数
2.让用户登录
3.前端混淆(方法多种多样,请求加一个加密参数,或者字典码)
在这里插入图片描述

4.验证码
在这里插入图片描述

再攻击:

使用代理ip请求,每个代理ip模拟请求,分散访问次数,破ip次数限制(代理ip是收费的,根据代理ip的匿名性以及使用时间收费不等,但是可以通过不断优化代码去减少这个成本)
Selenium(Selenium是web自动化的一个工具,可以模拟一个真的浏览器,然后再模拟鼠标操作,但是缺点是太慢了,而且调用浏览器比较多消耗内存,多线程会出现卡死情况)
下载下来页面的js文件,破解混淆(需要一定的js功力)(使用webpack类似工具的打包之后代码可读性变得非常差)
在这里插入图片描述

购买第三方接口去对图片验证码解析
在这里插入图片描述

再防御:

打包做成应用:手机app,电脑app,小程序(隐藏混淆代码)
加大查封代理ip的力度(对于恶意的请求ip地址逐渐的加大力度)

攻击升级:

分布式爬虫:肉鸡(仅用来做发请求,接收数据,再将数据包传给主机)大量使用代理ip
反编译app或者小程序

防御升级:

购买专业的安全服务,由专业人士负责打理安全问题

fiddler网络代理调试工具

在这里插入图片描述

这个应用可以用来做APP抓包,因为app不像网页中的请求一样可以用f12打开开发调试面板,电脑上的应用和手机上的应用以及小程序发出请求后,如果不依靠工具很难看到请求内容。
如果遇到混淆的请求,就需要去反编译,脱壳之后看小程序或者应用的源码。

构造一只http爬虫须知
/robots.txt协议
在这里插入图片描述

User-agent: 搜索机器人的名称
Disallow: 不允许搜索机器人访问的地址
Allow: 允许搜索机器人访问的地址

我们好像可以做点什么

短信轰炸机
使用一个手机号作为请求参数访问多个可以发短信验证码的地址

拿到数据之后可以通过不同维度展示数据,以这种形式做一个网站

抢茅台

大家有没有更好的想法?

警惕违法犯罪行为

越重要的数据反爬做的越严格,但是如果是一个以内容为核心的网站,抓取一次全量的数据后就可以复刻出来。
跨站攻击(也是模拟请求)-登录后,是有cookie和session在的,如果再打开一个钓鱼网站,可能就直接发送一个转账或者别的请求,因为你的登录态还没有失效,如果没有做好防范就有可能被攻击。

安全相关需要警惕的

如果有人尝试模拟一个请求来访问接口(有正确的cookie,session)
修改,删除时要注意校验当前数据是否是当前用户的,如果很随意就写了根据主键修改,这样非常不安全 ,要根据数据是否属于操作用户再校验一下

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

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

相关文章

chatgpt赋能python:自动预约系统的效率和便捷性:基于Python的解决方案

自动预约系统的效率和便捷性:基于Python的解决方案 随着互联网的不断发展,各行各业越来越多地依赖于数字化技术。特别是在当前的疫情背景下,公共场所的预约成为必要的防疫措施。但是,面对着上千人的预约,人工管理是非…

抖音seo源码搭建,抖音矩阵系统源码分发,抖音矩阵账号管理系统

前言: 抖音seo源码,抖音矩阵系统源码搭建,抖音矩阵同步分发。抖音seo源码部署是需要对接到这些正规接口再来做开发的,目前账号矩阵程序开发的功能,围绕一键管理多个账号,做到定时投放,关键词自动…

抖音seo源码搭建,抖音矩阵系统源码分发,抖音矩阵账号管理

前言: 抖音seo源码,抖音矩阵系统源码搭建,抖音矩阵同步分发。抖音seo源码部署是需要对接到这些正规接口再来做开发的,目前账号矩阵程序开发的功能,围绕一键管理多个账号,做到定时投放,关键词自动…

本地化大战,互联网巨头们又开始了

在本地生活上,美团和饿了么在擂台上打得不可开交,甚至快打完的时候,台下的抖音和拼多多与小红书也围了上来,开始复盘学习双方的经验,开始制定自己的锻炼计划……为了2025年的本地生活服务价值万亿元的市场。 今天&…

投资理财-变化

从第二天变成第三天,截图记录下这个变化,说明每宝的日子比以前更加难过了,这是好事嘛?我也不知道,判断不出来,未来继续看吧

理财通app的设计与实现(四)

一、数据分析界面 1、界面效果 2、前期准备 2.1 首先添加 AndroidMPChart 的依赖 (1)在素材文件夹中,选择 jar 包文件:MPAndroidChart-v3.0.3.jar,复制该 文件。 (2)展开 Android 的工程目录结构…

香港长和集团开创P2F金融理财新征程

2019年致2022年全球经济遭受严峻考验,疫情影响更为深远!凭借稳健发展策略,长和集团于十九世纪建基香港,是一家业务遍布全球的大型跨国综合企业,一向锐意创新,在不同业务范围广泛应用新科技,集团…

小米的创新四则

什么叫创新?我的理解,创新就是要做别人没做过的事情,或者是别人做过没有做成的事情。这样的事情一定不容易,它们有个特点,就是风险特别大。 风险大的事情一般不适合大企业干,所以创新的主体往往是创业的小公…

一名米粉述说:当年雷军是如何带领小米发展的

Author:Runsen 8月11日,小米集团董事长兼CEO雷军在小米北京总部举行了一场主题为《一往无前》的小米十周年演讲。 小时候的雷军,是“别人家的孩子” 雷军出生于仙桃市,仙桃位于湖北省中南部的江汉平原,拥有1500年多年…

小米方法论总结:雷军首部商业思考著作《小米创业思考》面世

8月11日晚,小米秋季新品发布会在京举行,小米集团创始人、董事长兼CEO雷军第三次做年度公开演讲,分享他曾经遇到的人生低谷,以及如何逆境中发现机会、奋起前行的故事。在发布会上,雷军还首次披露自己的首部商业思考著作…

【软件应用开发】小米便签APP维护开发

本文主要介绍在小米便签APP原有功能的基础上,设计并实现了便签添加图片的功能,从开发过程、运行界面、源代码三个方面进行详细介绍。 本文引用小米便签社区开源版代码:https://github.com/MiCode/Notes 小米便签APP维护开发完整源代码地址&am…

粗谈小米商业模式

01小米的“新零售” https://mp.weixin.qq.com/s/-_VLWX25eXdo6su8sE01nA 零售:其实就是信息流、资金流、物流的三种基本要素的万千组合。商品展现的参观和体验是信息流;付款收款是资金流;自己取回或快递送家是物流; 电商相对于…

新媒体短视频运营培训骗局

现在新媒体短视频运营培训的广告铺天盖地,是不是骗子啊?现在很多人会有这样的疑问,针对这个问题,我还是提醒同学们提高警惕,市场上有好有坏,就像当初UI设计四个月骗局一样,同学们还是保持一定的甄别意识。…

为什么做短视频你的一直不爆?

大家好,我是我赢助手短视频运营,专注于短视频去水印、去重和文案提取及短视频运营创作。 今天给大家分享的为什么做短视频你的一直不爆? 你在做账号之前,最多准备了多少条视频,有五条吗?有三十条吗&#…

某音短视频评论采集翻页(移动安全篇)

本章测试一个作品的评论及翻页: 以及前面的抓x包方式,在专栏里也有很多,xposed抓包过sslping,通用版本等; https://codeooo.blog.csdn.net/category_11500477.html 翻页通过页码来控制: # -*- coding:…

IT技能产品做短视频宣传应该怎么做?短视频宣传策略分析

对于IT技能产品来说,短视频宣传已经成为一种有效的宣传策略,能够有效地传播信息、激发消费者的兴趣。下面将从几个方面对IT技能产品短视频宣传策略进行分析: 在制作短视频的时候,要充分考虑到产品的特性,做出吸引人的短…

做短视频创业之前必须确定的内容:变现形式,短视频玩法和人设定位

做短视频创业之前必须确定的内容:变现形式,短视频玩法和人设定位。这是短视频的根基,打好基础才能更好的实现盈利目标。 开始做短视频的时候,走了很多弯路,这段时间总结了之前的经验教训,结合在我赢助手上…

什么类型的短视频更容易吸粉?分享三种短视频类型,可参考

什么类型的短视频更容易吸粉?分享三种短视频类型,可参考 现在做短视频的人越来越多,有趣有创意的短视频更是层出不穷,而这也就让刚接触短视频的小白们犯难了:好像每一种短视频都很能吸引粉丝,那么自己究竟…

视频号容易被官方封号的违规操作,你中招了吗?

视频号作为一个新崛起的流量池,已经成为许多企业、淘金者追捧的新流量阵地,但目前平台规则还不是那么完善,这就非常考验创作者的运营额能力和政策敏感度。 无论是哪个平台,一旦触碰红线,不管你的作品有多厉害、粉丝有多少,哪怕是不小心,也会受到相应的惩罚。 轻则限流…

视频号|常见违规限流情况及解除方法

在视频号创作过程中,大家有没有遇到过视频号限流的问题?或者直接收到过视频号官方发出的违规通知? 视频号被限流,最能在视频播放数据上体现出来。比如,平时的播放数据一直很好,突然间数据就变差了&#xf…