0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是爬虫看了就知道

STM32嵌入式开发 来源:搜狐网 作者:搜狐网 2020-10-21 11:10 次阅读

因为借助HTTP协议,我可以通过全球全部的website和浏览器获取我想要的数据。而我要加装自己是一个浏览器,向server发送HTTP请求,进而请求到网页文件。之后按照HTML的格式规范解析其中的图片、链接、表单,获得我感兴趣的内容。

得到链接标签之后,我会进一步爬取链接背后的内容,这样往复,用不了多长时间,我就能爬完这个站点中开放出来的所有内容。

都说盗亦有道,当然了,咱们爬虫也有底线。在我们这一行混,必须遵守一个规矩——Robots协议。robots.txt的文件被放在网站的根目录下充当门神,里面写上哪些目录禁止访问,爬虫就会绕道而行,robots里面的内容长这样:

User-agent: *

Disallow: /a/

Disallow: /b/

Disallow: /c/

如果你以为只有在程序员之间存在鄙视链,那你就错了,实际上他们的作品之间也存在鄙视链。

在这个星球上大佬级别的爬虫当属谷歌搜索引擎,当它想要爬取什么内容的时候全球所有网站都巴不得被爬取。全球几乎所有的网站都想被收录到搜索引擎的花名册,进而自己的网站可以被广大网民搜索到。

当然总有一些不法爬虫,有一些爬虫不遵守robots协议,随意乱爬,一天天只知道爬美女图片,把人家server都爬崩溃了。

但是像我这样老实本分的爬虫,日常就是爬取一些网站数据,比如购物网站、点评网站。但这些网站也不待见我们。

为了爬到数据,我们与网站之间一直在对峙。

再说说反爬虫

那些网站不待见咱们这些爬虫是因为心疼自己的网络带宽。

况且,我们不像搜索引擎爬虫可以给他们的网站带来流量,却会占用他们的服务器一部分性能,占据他们珍贵的流量,那些可都是雪花银,想想就揪心啊?

这些网站为了对付我们,采取了一个措施:在HTTP请求中的user-agent字段识别出这是爬虫,就不会理睬我们了。user-agent是HTTP协议中用来代表客户端名字的一个字段。在我刚入行时没什么经验,就经常被识破。

最后我只能换一身行头,冒充浏览器,更有甚者圈子里有个兄弟冒充搜索引擎,我不会像他那么没有底线。

没多久这招就失灵了,那些网站升级了策略,通过我们的行为来识别是不是真的浏览器。我们毕竟是程序,那速度比人类点击快多了,如果网站发现我们在短时间内发起了居多请求,那就掐断连接。被逼无奈,我只好降低爬取的频率。

在江湖漂,难免要挨刀,有些网站会设下陷阱,静静等候我们这些爬虫到来。他们在网页里面放上一些假的图片作为诱饵,实际上可能是只有几个像素、肉眼无法识别的假图片,但是我们不知道啊,对我来说只要是《img》标签就是图片。记得,有一次我一访问就中计了,立刻被拉入黑名单!

上次栽了跟头,但我没有退缩,翻越高墙,出来后我要变得更强大。

听说圈子里有些大佬用上了分布式技术,组团去爬,很多个IP地址,其中一个或者几个封了也不用怕,我真是很羡慕。慕名而去,我学会了这项本领,黑夜看到了我狰狞的笑。

前端后端

在我的爬虫生涯中遇到过一些奇怪的网站,网页中有数据,但是访问拿到的HTML中啥也没有。

原来这种网站用了前后端分离开发的技术。数据是浏览器通过单独的API接口拿到后再动态加载出来,而不是渲染到网页中,难怪我拿到的只是一个空壳子。

为了拿到数据,我只好也学着去请求这些数据接口,不过因为这些网站都有API网关,会检查请求的Token或者Authorization之类的认证字段,再加上我不知道他们的接口参数格式,导致我经常拿不到数据。直到最近两年,我拿到的网页HTML越来越简单了,在浏览器中丰富多彩的页面,一查看源代码竟然只有简单几行,真是见了鬼了!

有一天,一个前辈告诉我,现在流行单页应用SPA了,页面全都是在前端动态生成的,拿到的HTML根本没有价值。这简直欺人太甚了!

没办法了,我决定变成一个真正的浏览器。

这个内嵌的浏览器没有界面,专门为我服务,嵌入到我的程序中,让他去真正地渲染网页,渲染完成后我再去取数据。这是真正意义上模拟人类去访问网站了,再也不用模拟繁琐的数据接口访问,也不用担心单页应用,前端渲染就前端渲染,我再也不怕了!

难搞的验证码

到后来,不知道是谁发明的,网站们纷纷用上了一种叫验证码的技术,给我们出了难题。开始的验证码一般都是些简单的数字、英文字符做了些变形,就像这样:

江湖上很快有大佬教我用文字识别技术OCR来自动识别这种验证码,我也折腾了一下,费了老大劲终于可以识别出来,准确率不敢说100%,99%还是有的。

没多久这验证码就变得越来越复杂,什么汉字识别,物体识别,滑动解锁,一个比一个难,像是简单的小游戏。你瞧瞧下面这些验证码,这不是故意为难爬虫吗?

这些网站的反爬虫技术越来越先进,我们能发挥的空间被一步步挤压。内忧外患不断,不少爬虫兄弟失业的失业,转行的转行,爬虫这碗饭,真是越来越不好吃了。据说有个愣头青爬虫强行爬取一家公司的网站,最后把人公司server给爬崩溃了,他还被抓了起来。
责任编辑人:CC

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 爬虫
    +关注

    关注

    0

    文章

    77

    浏览量

    6514

原文标题:详解什么是爬虫?

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    看了知道 好东西的

    看了知道 好东西的
    发表于 08-09 15:52

    Python数据爬虫学习内容

    ,利用爬虫,我们可以解决部分数据问题,那么,如何学习Python数据爬虫能?1.学习Python基础知识并实现基本的爬虫过程一般获取数据的过程都是按照 发送请求-获得页面反馈-解析并且存储数据 这三个
    发表于 05-09 17:25

    爬虫可以采集哪些数据

    一、爬虫可以采集哪些数据   1.图片、文本、视频   爬取商品(店铺)评论以及各种图片网站,获得图片资源以及评论文本数据。   掌握正确的方法,在短时间内做到能够爬取主流网站的数据,其实非常容易
    发表于 10-15 17:25

    应对反爬虫的策略

    被机器人肆意地滥用,网站的安全和流量费用就会面临严重威胁,因此很多网站都会想办法防止爬虫程序接入。为了能够更好的爬虫,我们需要使用可变的ip地址,建立网络爬虫的第一原则是:所有信息都可以伪造。但是有
    发表于 12-12 17:39

    网络爬虫之关于爬虫http代理的常见使用方式

    在做爬虫的过程中,如果你爬取的频率过快,不符合人的操作模式。有些网站的反爬虫机制通过监测到你的IP异常,访问频率过高。就会对你进行封IP处理。目前已有比较多的第三方平台专门进行代理IP的服务,那
    发表于 04-26 17:43

    网络爬虫nodejs爬虫代理配置

    随着互联网的发展进步,现在互联网上也有许多网络爬虫。网络爬虫通过自己爬虫程序向目标网站采集相关数据信息。当然互联网的网站会有反爬策略。比如某电商网站就会限制一个用户IP的访问频率,从而出现验证码
    发表于 09-01 17:23

    Golang爬虫语言接入代理?

    golang语言也是爬虫中的一种框架语言。当然很多网络爬虫新手都会面临选择什么语言适合于爬虫。一般很多爬虫用户都会选择python和java框架语言来写
    发表于 09-09 17:41

    什么是爬虫

    什么是爬虫爬虫的价值?最简单的python爬虫爬虫基本架构
    发表于 11-05 06:13

    如何运行imdb爬虫

    imdbcn爬虫实例 imdbcn网站结构分析 创建爬虫项目 运行imdb爬虫
    发表于 11-05 07:07

    0基础入门Python爬虫实战课

    情况及薪资水平……诸如此类,不胜枚举。只要是信息,只要你能看到它,想批量获取它,都可以使用爬虫来实现。但,自学爬虫存在不少障碍,你可能会有这些困扰:看了书,上了课,却依然不会爬虫自学遇
    发表于 07-25 09:28

    python网络爬虫概述

    网络爬虫(Web Spider)又称网络蜘蛛、网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫按照系统结构和实现技术,大致可分为一下几种类型:通用网络爬虫:就是尽可能
    发表于 03-21 16:51

    labview实现网络爬虫功能

    借助.NET,labview实现爬虫功能。爬取12306上的票务信息。懒得搭建python的环境了。用C#编写票务信息爬虫库,然后用labview调用。labview源代码见附件。具体的配置实现细节
    发表于 04-02 17:20

    爬虫是如何实现数据的获取爬虫程序如何实现

    进入大数据时代,爬虫技术越来越重要,因为它是获取数据的一个重要手段,是大数据和云计算的基础。那么,爬虫到底是如何实现数据的获取的呢?今天和大家分享的就是一个系统学习爬虫技术的过程:先掌握爬虫
    发表于 01-02 16:30 10次下载
    <b class='flag-5'>爬虫</b>是如何实现数据的获取<b class='flag-5'>爬虫</b>程序如何实现

    网络爬虫是否合法

    网络爬虫在大多数情况中都不违法,其实我们生活中几乎每天都在爬虫应用,如百度,你在百度中搜索到的内容几乎都是爬虫采集下来的(百度自营的产品除外,如百度知道、百科等),所以网络
    的头像 发表于 03-21 17:20 1.2w次阅读

    Python爬虫 你真的会写爬虫吗?

    你以为你真的会写爬虫了吗?快来看看真正的爬虫架构!
    的头像 发表于 05-02 17:02 3533次阅读
    Python<b class='flag-5'>爬虫</b> 你真的会写<b class='flag-5'>爬虫</b>吗?