开源情报之领英人脸情报收集,如何快速收集上亿张人脸情报

一.前言
先看应用例子:
残忍至极!乌克兰用人脸识别战死俄军,联系母亲打“心理战”
情报机构,所掌握的数据,可以是市面上流出的任何数据,比如市面上泄露的领英数据,facebook,twitter,这些数据可以作为开源情报的基础数据之一,用来将互联网与个人实体联系起来
所有的技术,第一服务目标是暴力,如果你是一个程序员,如何构建一个能联系起现实的庞大数据库,通过触手可及的互联网内容。先展示我的成果,再来讲述技术:
已经成功收集了几千万张这类头像

二.技术实现
SeetaFace6,爬虫
领英已经实现了严格的反爬措施,要爬取6亿条用户的头像,那就要找一个相对于好的弱项进行攻破;已知领英开发团队来之meta,meta程序员好给每个用户搞多个接口返回用户信息,例如badges页面,可以通过该页面,获取无穷无尽的用户头像
1.实现第一步,获取领英的账号地址,如果你是出色的情报人员,你手上应该有已经有了上亿的领英用户主页地址了,如果没有,你可以自己使用程序进行爬取,或者通过灰色渠道,这里写如何通过爬虫爬取:
爬虫实现技术,java selenium,使用现成领英账号登录后进行爬取
如何实现selenium的登录控制与特征抹除:

package com.util;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.PageLoadStrategy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.logging.LogType;
import org.openqa.selenium.logging.LoggingPreferences;
import org.openqa.selenium.net.ChromeDriverProxy;
public class WebDriverTool {/*** 获取web驱动* * @return 浏览器驱动*/public ChromeDriver getWebDriver(String username) {System.setProperty("webdriver.chrome.driver", com.util.PropertyUtil.getvalue("chromedriver"));// 指定驱动路径// 设置浏览器参数ChromeOptions options = new ChromeOptions();Map<String, Object> prefs = new HashMap<String, Object>();prefs.put("credentials_enable_service", false);prefs.put("profile.password_manager_enabled", false);prefs.put("profile.password_manager_enabled", false);options.addArguments("user-data-dir=C:\\chrome\\"+username);//指定浏览器的运行文件存储地,领英账号登录后就可以保持长久的会话了/**excludeSwitches", Arrays.asList("enable-automation")在高版本的谷歌浏览器是无法屏蔽window.navigator.webdriver 为false 的特征,这里写出来是为了配合其他参数来关闭浏览器上显示"正在收到自动测试软件控制"的提示**/options.setExperimentalOption("excludeSwitches", Arrays.asList("enable-automation"));options.addArguments("--disable-blink-features");options.addArguments("--disable-blink-features=AutomationControlled");options.setExperimentalOption("useAutomationExtension", false);//options.addArguments("blink-settings=imagesEnabled=false");options.setExperimentalOption("prefs", prefs);// 创建驱动对象ChromeDriver driver = new ChromeDriver(options);//ChromeDriverProxy driver=new ChromeDriverProxy(options);driver.manage().window().setSize(new Dimension(1280, 1024));// 去除seleium全部指纹特征FileReader fileReader = new FileReader("C:\\lurk.js");String js = fileReader.readString();// MapBuilder是依赖hutool工具包的apiMap<String, Object> commandMap = MapBuilder.create(new LinkedHashMap<String, Object>()).put("source", js).build();// executeCdpCommand这个api在selenium3中是没有的,请使用selenium4才能使用此api((ChromeDriver) driver).executeCdpCommand("Page.addScriptToEvaluateOnNewDocument", commandMap);return driver ;}}

lurk.js 文件是控制特征去除的js片段,下载地址:https://download.csdn.net/download/qq_19383667/88444628
使用selenium进行账号登录后,找到:https://sg.linkedin.com/in/li-hao-74581548 这个页面,你会发现,只需要知道领英用户主页地址,即可快速批量的获得用户的头像文件,而且访问一个地址,你就能获取几十张额外的头像与用户主页地址

同名推荐
url对应的正主
同公司地域行业的推荐
到这里基本上能完成很多头像的收集

2.SeetaFace6实现头像切割与特征收集
该项目java版地址:https://gitee.com/cnsugar/seetaface6JNI,特征识别方法为:

try {BufferedImage user = ImageIO.read(new File(downpath));if (user != null) {float[] s = FaceHelper.extractMaxFace(user);ArrayList<Float> list = new ArrayList<Float>();if (s != null) {for (int i = 0; i < s.length; i++) {list.add(s[i]);}JSONArray maxfacecode = JSONArray.fromObject(list);maxfacecode_str = maxfacecode.toString();//数字化的人脸特征值,后期直接可用用作人脸对比}}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}

这里已经能收集很多人脸的数据了,领英的价值在于可以将该处人脸特征作为基础数据,与推特,facebook社交内容做交互,快速识别人员身份

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

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

相关文章

Kylin麒麟系统下安装人大金仓

虚拟机在线安装 install open-vm-tools-desktop -y 简要介绍 人大金仓数据库管理系统KingbaseES&#xff08;简称&#xff1a;金仓数据库或KingbaseES&#xff09;是北京人大金仓信息技术股份有限公司自主研制开发的具有自主知识产权的通用关系型数据库管理系统。金仓数据库主…

YOLOv7改进:动态蛇形卷积(Dynamic Snake Convolution),增强细微特征对小目标友好,实现涨点 | ICCV2023

💡💡💡本文独家改进:动态蛇形卷积(Dynamic Snake Convolution),增强细长微弱的局部结构特征与复杂多变的全局形态特征,对小目标检测很适用 Dynamic Snake Convolution | 亲测在多个数据集能够实现大幅涨点 收录: YOLOv7高阶自研专栏介绍: http://t.csdnimg.…

Operator 开发实践 四 (WebHook)

1. WebHook介绍 我们知道访问Kubernetes API有好几种方式&#xff0c;比如使用kubectl命令、使用client-go之类的开发库、直接通过REST请求等。不管是一个使用kubectl的真人用户&#xff0c;还是一个Service Account&#xff0c;都可以通过API访问认证&#xff0c;这个过程官网…

【Java学习之道】JDBC API介绍与使用方法

引言 对于初学者来说&#xff0c;数据库编程可能听起来有些复杂&#xff0c;但实际上&#xff0c;只要你掌握了JDBC&#xff08;Java Database Connectivity&#xff09;API&#xff0c;就可以轻松地连接和操作数据库。本章将为你详细介绍JDBC API的概念、使用方法以及一些实际…

zabbix触发器与动作

一、触发器&#xff08;Trigger&#xff09; 1、概念&#xff1a; 在 Zabbix 中&#xff0c;触发器用于监测 Zabbix 监控系统中的各种指标和条件&#xff0c;并在特定条件满足时触发警报。&#xff08;触发器用于定义监控项的报警阈值&#xff09; 2、触发器对象&#xff1a…

chatglm配置

推荐看这个链接&#xff0c;有些问题解决出处https://zhuanlan.zhihu.com/p/643824521 以及这个https://blog.csdn.net/weixin_40547993/article/details/131775275 1.需要pytorch2.0&#xff0c;所以CUDA推荐11.8 ChatGLM2-6B版本要装PYTORCH2.0&#xff0c;而且要2.0.1 &a…

檀香香料经营商城小程序的作用是什么

檀香香料有安神、驱蚊、清香等作用&#xff0c;办公室或家庭打坐等场景&#xff0c;都有较高的使用频率&#xff0c;不同香料也有不同效果&#xff0c;高品质香料檀香也一直受不少消费者欢迎。 线下流量匮乏&#xff0c;又难以实现全消费路径完善&#xff0c;线上是商家增长必…

Python|Pyppeteer获取去哪儿酒店数据(20)

前言 本文是该专栏的第20篇,结合优质项目案例持续分享Pyppeteer的干货知识,记得关注。 本文以去哪儿为例,笔者将详细介绍使用pyppeteer获取去哪儿的酒店数据。如果对pyppeteer的使用以及知识点不太熟悉的同学,可往前查看本专栏前面介绍的pyppeteer知识点。 接下来,我们言…

web前端基础CSS------美化页面“footer”部分

一&#xff0c;实验代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>关于我们</title><style type"text/css">#footer{margin: 10px 0px;background: #f5f5f5;border: top 1px solid #eee ;}#f…

Electron webview 内网页 与 preload、 渲染进程、主进程的常规通信 以及企业级开发终极简化通信方式汇总

Electron 嵌入的页面中注入的是 preload.js 通过在标签中给 prelaod赋值&#xff0c;这里提到了 file://前缀&#xff0c;以及静态目录 static 怎么获取 实际代码&#xff0c;其中__static就是我们存放静态文件的地方&#xff0c;这个 static 是 electron 源代码根目录下的文件…

Linux开发工具:vim的介绍和用法及其简单配置

前言 Vim 简介. 编辑. Vim是从 vi 发展出来的一个文本编辑器。. 代码补全、编译及错误跳转等方便编程的功能特别丰富&#xff0c;在程序员中被广泛使用&#xff0c;和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。. [1] vim的设计理念是命令的组合。. 用户学习了各种各样的…

《深入理解java虚拟机 第三版》学习笔记一

第 2 章 Java 内存区域与内存溢出异常 2.2 运行时数据区域 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途&#xff0c;以及创建和销毁的时间&#xff0c;有的区域随着虚拟机进程的启动而一直存在&#xff0c;有些…

解决Github Markdown图片显示残缺的问题

title: 解决Github Markdown图片显示残缺的问题 tags: 个人成长 categories:杂谈 在Github存放Markdown文档&#xff0c;如果图片没有存放在Github服务器上&#xff0c;github会尝试生成Github图片缓存&#xff0c;使用Github图片缓存&#xff0c;进行实际的展示。但比较蛋疼的…

PHP 智能物业管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 智能物业管理系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 PHP小区物业管理系统1 代码 https://download.csdn.net/download/qq_41221322/88444…

Git——解决 TortoiseGit 提示 No supported authentication methods available 错误

快速导航 问题描述解决方案步骤1 打开Git 的 Settings窗口步骤2 选择Network步骤3 选择安装目录usr\bin 下的 ssh.exe 文件 问题描述 git 推送&#xff08;push&#xff09;后提示No supported authentication methods available 错误 解决方案 步骤1 打开Git 的 Settings窗…

MySQL——七、MySQL备份恢复

MySQL 一、MySQL日志管理1、MySQL日志类型2、错误日志3、通用查询日志4、慢查询日志5、二进制日志5.1 开启日志5.2 二进制日志的管理5.3 日志查看5.4 二进制日志还原数据 二、MySQL备份1、备份类型逻辑备份优缺点 2、备份内容3、备份工具3.1 MySQL自带的备份工具3.2 文件系统备…

数据分析入门

B站&#xff1a;01第一课 数据分析岗位职责和数据分析师_哔哩哔哩_bilibili 一、岗位&#xff1a;数据分析师 Q1 数据分析师在公司做什么工作&#xff1f; 数据来源于公司核心业务&#xff0c;通过监测业务健康度来确定业务的健康状况&#xff1b; 通过对用户精细化分析&am…

Java面试题总结(二):Java多线程

文章目录 1.进程和线程的区别&#xff0c;进程间如何通信2. 什么是线程上下文切换3.什么是死锁4.死锁的必要条件5.Synchronized和lock的区别6.什么是AQS锁?7.为什么AQS使用的双向链表&#xff1f;8.有哪些常见的AQS锁9.sleep()和wait()的区别10.yield()和join()区别11.线程池七…

【API篇】三、Flink转换算子API

文章目录 0、demo数据1、基本转换算子&#xff1a;映射map2、基本转换算子&#xff1a;过滤filter3、基本转换算子&#xff1a;扁平映射flatMap4、聚合算子&#xff1a;按键分区keyBy5、聚合算子&#xff1a;简单聚合sum/min/max/minBy/maxBy6、聚合算子&#xff1a;归约聚合re…

wsl使用vscode连接,远程安装C/C++ 拓展时,报错

报错内容&#xff1a; EACCES: permission denied, rename /home/wen/.vscode-server/extensions/.b61b1c7c-f703-4dfd-bdc5-d9a00681c4b7 -> /home/wen/.vscode-server/extensions/ms-vscode.cpptools-1.17.5-linux-x64 解决办法&#xff1a; 升级wsl到wsl2就好了。 &a…