第二十七期:网络爬虫程序员被抓,我们还敢爬虫吗?细数那些Java爬虫技术

最近,某大数据科技公司因为涉嫌非法抓取某招聘网站用户的简历信息,公司被查封,负责编写抓取程序的程序员也将面临坐牢。

作者:架构之路来源

 最近,某大数据科技公司因为涉嫌非法抓取某招聘网站用户的简历信息,公司被查封,负责编写抓取程序的程序员也将面临坐牢。

事情的大概经过是这样的:

某大数据科技公司老板丢给一个小小的程序员一个网站,告诉他把这个网站的数据抓取下来,咱们做一做分析。这个小小的程序员就吭哧吭哧的写了一段抓取代码,测试了一下,程序没问题,可以正常的把这个网站的数据给抓取下来,然后就毫不犹豫的上线了。过了几天,这个小小的程序员发现抓取的速度有点慢啊,然后他就将1个线程改成10个线程,发布上线,开始抓取,程序跑的没毛病。

过了一段时间,网站主的老板发现最近网站访问量激增,并且还经常宕机。然后组织公司程序员排查系统问题,经过排查发现,系统某一个接口频繁访问,遂怀疑有人恶意攻击,于是就报案了。警察通过访问来源IP顺藤摸瓜,查到小小程序员所在的公司,把公司全员200人全部扣留调查,这名小小程序员由于负责抓取程序的编写,将面临坐牢。小小程序员一脸懵逼,我只负责老板交给我的任务,我犯什么法了?

看了这个新闻,程序员朋友还不赶快将你的爬虫程序下线,要不下一个抓的就是你,怕不怕?

爬虫技术对于大多数程序员来说一点不陌生,大多数程序员都干过爬虫的事情吧!我记得我刚毕业入职的第一家公司我就是负责爬虫的。主要爬取各大高校官网的新闻资讯信息,然后利用这些信息给高校做手机微官网。当然,我们是经过了大多数高校的默认的。

今天我们暂且不论爬虫是否违法,这个问题我们也论不清楚。国内现在这么多做大数据分析公司,他们可以提供各种数据分,他们的数据是从哪里来的?有几家是正当来源?恐怕大多都是爬来的。今天我们细数那些java爬虫技术。

一、Jsoup

的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。这也是我最早使用的爬虫技术。

二、HtmlUnit

HtmlUnit是一款java的无界面浏览器程序库。它可以模拟HTML文档,并提供相应的API,允许您调用页面,填写表单,点击链接等操作。它是一种模拟浏览器以用于测试目的的方法。使用HtmlUnit你就感觉你是在操作浏览器,他对于css和js都可以很好的支持。

三、Selenium

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

Selenium我觉得是最好的爬虫工具了,因为它完全模拟浏览器。由程序掉起浏览器,模拟人的操作。关于Selenium在我的文章[Selenium利器!解放测试程序员的双手]有专门讲解。

最后,爬虫有风险,使用需谨慎。希望广大程序员朋友在使用爬虫技术的时候,要有数据隐私的意识。

以下内容来源网络:

如果爬虫程序采集到公民的姓名、身份证件号码、通信通讯联系方式、住址、账号密码、财产状况、行踪轨迹等个人信息,并将之用于非法途径的,则肯定构成非法获取公民个人信息的违法行为。

除此之外,根据相关规定,对于违反国家有关规定,向他人出售或者提供公民个人信息,情节严重的,窃取或者以其他方法非法获取公民个人信息的,均可构成成“侵犯公民个人信息罪”,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。


阅读目录(置顶)(长期更新计算机领域知识)https://blog.csdn.net/weixin_43392489/article/details/102380691

阅读目录(置顶)(长期更新计算机领域知识)https://blog.csdn.net/weixin_43392489/article/details/102380882

阅读目录(置顶)(长期科技领域知识)https://blog.csdn.net/weixin_43392489/article/details/102600114

 

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

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

相关文章

文本搜索系统的评估

说明:文章内容来源于课程视频和课程ppt。我只学习了课程没有做习题。文章不是翻译,是我对课程的理解。  这部分本应该继续说反馈(FeedBack)的。但是课程中安排的是评估(Evaluation)。评估是用于衡量搜索引擎质量的。反馈是为了提高搜索引擎质量而进行的…

UE3客户端服务器GamePlay框架

客户端(当前玩家)与服务器对应关系图: 整体上看,UE3的GamePlay框架使用的是MVC架构 ① 橙色的Actor对象及橙色箭头相连的成员变量只会被同步给Owner客户端 Controller:控制器,包括PlayerController和AIController InventoryManage…

[Leetcode][第201题][JAVA][数字范围按位与][位运算][Brian Kernighan]

【问题描述】[中等] 【解答思路】 1. 暴力 逐位与 ,只需要判断i 0 或 i 2147483647 的话,就跳出 for 循环即可。 时间复杂度:O(N) 空间复杂度:O(1) public int rangeBitwiseAnd(int m, int n) {//m 要赋值给 i,所…

文档排序模型--查询似然Query Likelihood

在概率模型中,我们定义排序函数是基于文档与查询之间的相关度、可能性来做的。f(d,q) p(R1|d,q), R ∈{0,1}。概率模型有几个小分类:   经典概率模型——>BM25   语言模型Language Model —–>Query Likelihood   Divergence from rando…

第五十二期:甲骨文遭遇“中年危机”:继阿里后,再被亚马逊永久抛弃

42岁的甲骨文迎来“中年危机”。10月15日,亚马逊AWS技术布道者Jeff Barr在AWS官网宣布亚马逊消费者业务永久弃用甲骨文(Oracle)数据库。 作者:温暖来源:镁客网 42岁的甲骨文迎来“中年危机”。 10月15日,亚马逊AWS技术布道者Jef…

[Leetcode][第461题][JAVA][汉明距离][位运算][Brian Kernighan]

【问题描述】[简单] 【解答思路】 1. 内置位计数功能 时间复杂度:O(1) 空间复杂度:O(1) class Solution {public int hammingDistance(int x, int y) {return Integer.bitCount(x ^ y); } }2. 移位 时间复杂度:O(1) 空间复杂度&#xff1…

第二十八期:Notepad++ 新 Logo 出炉,官网全新改版采用自适应设计

Notepad 的推特帐号发布了关于 notepad 的消息。与旧版 Logo 相比,新 Logo 整体的变化不大,不过官方则表示新版 Logo 比旧版的更吸引人,也更加简洁且更具意义。 新旧 Logo 对比如下(左边为旧版 Logo): 除了…

React Navigation 导航栏样式调整+底部角标消息提示

五一佳节匆匆而过,有人选择在外面看人山人海,有人选择宅在家中度过五一,也有人依然坚守在第一线,致敬! 这是坚持学习react-native的第二篇文章,可能会迟到,但是绝不会缺席,这篇要涉及…

反馈(Feedback)

说明:文章内容来源于课程视频和课程ppt。我只学习了课程没有做习题。文章不是翻译,是我对课程的理解。  终于到了第四部分了。之前提到过的,一个文本检索系统分词索引打分反馈。前面三部分都已经在前面的文档中介绍了。现在看反馈。反馈是根…

【数据结构与算法】堆

一:如何理解“堆” 1,堆是一个完全二叉树; 完全二叉树要求除了最后一层,其他层的节点都是满的,最后一层的节点都靠左排列。 2,堆中每个节点都必须大于等于(或小于等于)其子树中每个…

第五十三期:资深技术Leader肺腑忠告:如何成为技术大牛?

这篇文章,对于每一个想成为技术大牛的人来说都值得仔细阅读好几遍。 作者:曹乐来源:再成长一次 图片来自 Pexels 双生说:曹乐是典型学霸,清华本硕,多年互联网大厂研发经验,所以“资深”。我刚…

互联网搜索引擎

说明:文章内容来源于课程视频和课程ppt。我只学习了课程没有做习题。文章不是翻译,是我对课程的理解。 1 挑战 互联网搜索引擎与一般搜索引擎的区别主要在以下问题。  第一是数据量(scalability)。互联网搜索需要处理的数据量大,如何保证能…

第五十四期:Libra盟友纷纷“跳船”,联盟链还有戏吗?

曾经被诺贝尔奖得主斯蒂格利茨评价为“傻子才信”的Facebook数字加密货币项目Libra,自从出世开始就负面不断。最近在其首届理事会议前夕,PayPal、Visa、万事达、Stripe和eBay等全球型金融巨头“盟友”的相继退出,更使其遭遇了不少“看空”。 …

python time模块

时间戳、结构化时间、字符串时间 import time#时间戳 ,大多时候用于计算 #从1970年0点0分0秒开始计算的秒数 print(time.time())#结构化时间------当地时间(东8区) #返回一个时间对象 print(time.localtime())#time.localtime()中默认参数为…

第五十五期:区块链将在2020年实现的重大改变

科技界的每家公司都已经拥有区块链战略。如果他们现在没有,他们就有可能错过了这个时代的一个机会。在过去几年中,许多企业已经对整体采用区块链技术的好处和相关风险进行了估算,分析和讨论。 科技界的每家公司都已经拥有区块链战略。如果他们…

为什么机器学习算法要与人类水平比较

原因 1 近年来机器学习的效果越来越好,能够和人类的相应能力做比较。 2 设计和构建机器学习系统,这个工作流程很高效。 因为种种原因,ML或者人都不可能超过Bayes Optimal Error 贝叶斯最优误差,ML随着时间推移会越来越接近贝…

第二十九期:运维之三大监控对比

Zabbix核心组件主要是Agent和Server,其中Agent主要负责采集数据并通过主动或者被动的方式采集数据发送到Server/Proxy,除此之外,为了扩展监控项,Agent还支持执行自定义脚本。 作者:艺术生的运维路来源:今日…

[Leetcode][第459题][JAVA][重复的字符串][子串][匹配]

【问题描述】[中等] 【解答思路】 1. 枚举 找出能整除的子串长度,再用substring遍历匹配即可 时间复杂度:O(N^2) 空间复杂度:O(1) class Solution {public boolean repeatedSubstringPattern(String s) {int len s.length();for(int i 1…

第五十六期:百度CTO王海峰CNCC2019演讲:深度学习平台支撑产业智能化

百度CTO王海峰在会上发表题为《深度学习平台支撑产业智能化》的演讲,分享了百度关于深度学习技术推动人工智能发展及产业化应用的思考,并深度解读百度飞桨深度学习平台的优势,以及与百度智能云结合助力产业智能化的成果。 作者:佚…

【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)(转载)

版权声明:本文为博主原创文章,允许转载,但希望标注转载来源。 https://blog.csdn.net/qq_38410730/article/details/80312357IIC的基本介绍 IIC的简介 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公…