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

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

3天内不再提示

写网络爬虫程序的难度是怎么分等级的

Wildesbeast 来源:今日头条 作者:猿人学 2020-02-05 11:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

写爬虫,是一个非常考验综合实力的活儿。有时候,你轻而易举地就抓取到了想要的数据;有时候,你费尽心思却毫无所获。

好多Python爬虫的入门教程都是一行代码就把你骗上了“贼船”,等上了贼船才发现,水好深~比如爬取一个网页可以是很简单的一行代码:

r = requests.get('http://news.baidu.com')

非常的简单,但它的作用也仅仅是爬取一个网页,而一个有用的爬虫远远不止于爬取一个网页。

一个有用的爬虫,只需两个词来衡量:

数量:能否抓全所有该类数据

效率:抓完所有数据需要多久一天还是一个月

但要做到这两个词,却是要下很多功夫。自己下功夫是一方面,也很重要的是你要抓全的目标网站给你出了多少难题。综合起来,就写一个爬虫有多少难度。

网络爬虫难度一:只需爬取html网页但要上规模

这里我们举个新闻爬虫的例子。大家都用过百度的新闻搜索吧,我就拿它的爬虫来讲讲实现上的难度。

新闻网站基本上不设防,新闻内容都在网页的html代码里了,抓全一个网页基本上就是一行的事情。似乎听上去很简单,但对于一个搜索引擎级的爬虫,就不那么简单了,要把几千几万家新闻网站的新闻都及时抓取到也不是一件容易的事情。

我们先看看新闻爬虫的简单流程图:

从一些种子网页开始,种子网页往往是一些新闻网站的首页,爬虫抓取网页,从中提取网站URL放到网址池再进行抓取。这样就从几个网页开始,不断扩展到其它网页。爬虫抓取的网页也越来越多,提取出的新网网址也会成几何级数增长。

如何能在最短时间抓取更多网址?

这就是其中一个难度,这不是目标网址带来的,而是对我们自身自愿的考验:

我们的带宽够吗

我们的服务器够吗,单台不够就要分布式

如何能及时抓取到最新的新闻?

这是效率之外的另一个难度,如何保证及时性?几千家新闻网站,时刻都在发布最新新闻,爬虫在织网式抓取“旧”新闻的同时,如何兼顾获取“新”新闻呢?

如何存储抓取到的海量新闻?

爬虫织网式的爬取,会把每个网站几年前几十年前的新闻网页都给翻出来,从而获得海量的网页需要存储。就是存储上的难度。

如何清理提取网内容?

从新闻网页的html里面快速、准确提取想要的信息数据,比如标题、发布时间、正文内容等,这又带来内容提取上的难度。

网络爬虫难度二:需要登录才能抓到想要的数据

人是贪婪的,想要的数据无穷尽,但是很多数据不是你轻易就可以获得的。有一大类数据就是需要账户登录后才能看到,也就是说,爬虫请求时必须是登录状态才能抓取数据。

如何获取登录状态?

老猿前面已经说过了,http协议的性质决定了登录状态就是一些cookies,那么如何获得登录状态就是一个非常有难度的问题。

有些网站登录过程很简单,把账户、密码发给服务器,服务器验证通过返回表示已登录的cookies。这样的网站,比较容易实现自动登录,爬虫运行过程全程无需人工干预,你就有更多时间喝茶、聊天、上猿人学看python。

如何处理验证码?

然而,网站们既然要求你登录了,他们就不会这么轻易放过你,要做的更绝才能让小猿们善罢甘休,那就是上验证码!

没错,就是变态的验证码。

有的运用社会工程,进行人工识别验证码;也有,通过图像处理技术,尤其如今火热的深度学习人工智能的技术,来自动识别验证码。

那么,当你写爬虫时遇到验证码该怎么办?

网络爬虫难度三:异步加载甚至JavaScript解密

前面的两个难度,都是靠我们研究数据加载过程,然后用Python代码可以重现出来,进行抓取的。

而遇到达第三个难度时,研究数据加载过程会让你十分痛苦、近乎崩溃。异步加载流程和服务器来来回回好多次,最后得到的数据还要通过JavaScript解密才能看到,这都是压垮小猿们的最后一根稻草。

有没有终极大招可以破解呢?

网络爬虫难度四:APP的抓取

APP连包都抓不到

抓包是写爬虫组装请求数据的基础条件,对APP抓包的繁复度远超网站,APP对代理抓包的检测,对网络请求库的混淆,使用socket通信等阻挡了相当部分爬虫选手。

请求Token参数的加密

APP请求参数的组装是一个黑盒,不一窥参数的组装流程,请求不到数据;APP repsonse回来的数据可能是二进制或编码过,不知道如何解码还原,抓下来数据也只能望洋兴叹。

要能正确抓取APP数据就需要具备网络安全行业的初中级知识。

总结了一下这爬虫的一些难度,明年应该会结合一些实际示例来讲解如何破解这些不同程度的难题。

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

    关注

    30

    文章

    4942

    浏览量

    73160
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89602
  • 爬虫
    +关注

    关注

    0

    文章

    87

    浏览量

    7960
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电能质量在线监测装置的暂态事件台账存储容量有限,如何进行数据管理?

    丢失、存储资源高效利用、运维成本可控。以下是结构化的解决方案: 一、核心原则:数据分级,价值优先 首先按数据价值划分等级,优先保障高价值数据的存储与备份,避免 “一刀切” 的存储策略导致关键数据丢失: 数据等级 数据类型
    的头像 发表于 12-11 10:53 229次阅读
    电能质量在线监测装置的暂态事件台账存储容量有限,如何进行数据管理?

    # 深度解析:爬虫技术获取淘宝商品详情并封装为API的全流程应用

    需求。本文将深入探讨如何借助爬虫技术实现淘宝商品详情的获取,并将其高效封装为API。 一、爬虫技术核心原理与工具 1.1 爬虫运行机制 网络爬虫
    的头像 发表于 11-17 09:29 183次阅读

    网线分等级吗?常见的网线等级有哪些

    网线确实存在等级划分,主要依据其传输性能、适用场景和标准规范进行分类。以下是常见的网线等级及特点: 一、按传输速率分类 Cat5(五类线) 传输频率:100MHz 最大速率:100Mbps(百兆
    的头像 发表于 10-10 10:52 1233次阅读

    从 0 到 1:用 PHP 爬虫优雅地拿下京东商品详情

    PHP 语言 实现一个 可运行的京东商品爬虫 ,不仅能抓取商品标题、价格、图片、评价数,还能应对常见的反爬策略。全文附完整代码, 复制粘贴即可运行 。 一、为什么选择 PHP 做爬虫? 虽然 Python 是爬虫界的“老大哥”
    的头像 发表于 09-23 16:42 580次阅读
    从 0 到 1:用 PHP <b class='flag-5'>爬虫</b>优雅地拿下京东商品详情

    电能质量在线监测装置的精度等级和准确度的关系是否受测量参数的影响?

    ,导致同一装置对不同参数的 “精度等级标称” 与 “实际准确度表现” 的匹配关系完全不同 —— 部分参数的准确度易符合其精度等级,部分参数则可能因测量难度高而偏离精度等级。 一、核心前
    的头像 发表于 09-12 10:02 487次阅读
    电能质量在线监测装置的精度<b class='flag-5'>等级</b>和准确度的关系是否受测量参数的影响?

    Nginx限流与防爬虫配置方案

    在互联网业务快速发展的今天,网站面临着各种流量冲击和恶意爬虫的威胁。作为运维工程师,我们需要在保证正常用户访问的同时,有效防范恶意流量和爬虫攻击。本文将深入探讨基于Nginx的限流与防爬虫解决方案,从原理到实践,为大家提供一套完
    的头像 发表于 09-09 15:52 668次阅读

    设置RDP等级为2的同时,有什么办法可以确保后续还能够烧录程序

    请问有在将RDP等级设置为2的前提下,确保后续还能够烧录程序的办法吗
    发表于 07-10 06:12

    IP防护等级说明

    IP防护等级说明
    发表于 06-24 16:55 2次下载

    流量传感器在半导体芯片测试的分选机中应用

    Test):对封装完成后的每颗芯片进行功能和电参数测试,分出芯片好坏或分等级。国内分选机的重任工作还是用于芯片成品测试,测试平台主要包括测试机、分选机、测试座等设备和材料,在芯片成片环节主要流程和晶圆测试类似:   传送:分选机将
    的头像 发表于 04-23 09:13 691次阅读
    流量传感器在半导体芯片测试的分选机中应用

    爬虫数据获取实战指南:从入门到高效采集

    爬虫数据获取实战指南:从入门到高效采集     在数字化浪潮中,数据已成为驱动商业增长的核心引擎。无论是市场趋势洞察、竞品动态追踪,还是用户行为分析,爬虫技术都能助你快速捕获目标信息。然而,如何既
    的头像 发表于 03-24 14:08 1259次阅读

    难度PCB不再难!捷多邦揭秘PCB制作难度层级

    在电子行业中,PCB(印刷电路板)是不可或缺的核心组成部分。从简单的电子玩具到复杂的航天设备,PCB的制作难度各异。今天,我们就来揭秘PCB制作的难度排行榜,看看哪些类型的PCB制作起来最为挑战
    的头像 发表于 03-05 17:04 1177次阅读

    机械碰撞防护等级测试

    一机械碰撞防护等级(IK01~IK10)IK是指设备外壳的防冲击防护等级,IK类似于IP防护等级,对于室外电子设备,无论是架空,地埋还是普通室外放置,都需要有相应的IP、IK要求。IK等级
    的头像 发表于 03-05 12:43 1168次阅读
    机械碰撞防护<b class='flag-5'>等级</b>测试

    IP地址数据信息和爬虫拦截的关联

    IP地址数据信息和爬虫拦截的关联主要涉及到两方面的内容,也就是数据信息和爬虫。IP 地址数据信息的内容丰富,包括所属地域、所属网络运营商、访问时间序列、访问频率等。 从IP地址信息中可以窥见
    的头像 发表于 12-23 10:13 680次阅读