前言

大神 崔庆才《健壮高效的网络爬虫》中把爬虫分为网页爬虫、APP爬虫,又根据网页渲染方式、APP接口又进行了细分,想了解更深入的伙伴们可去参考原著。

由于工作的原因,本人搞得更多的是网页爬虫,其实在爬虫圈大多玩的也是网页爬虫;相对APP爬虫而言,网页爬虫的门槛更低,是大部分玩家的练手起点,本篇也是主要介绍网页爬虫的相关内容。

1.单线式、扣链式、散花式

根据采集动作不同分为单线式、扣链式爬虫。

(1)单线式爬虫

即一次request,其response就是目标数据;单线式爬虫十分常用如爬电商平台上产品介绍页、社交网站上文章内容、基金网站的基金详情页面等等。

(2)扣链式爬虫

从第1次request返回的response中得到第2次request的url,接着从第2次request返回的response中得到第3次request的url .... ,如此一环接一环扣下去。如“翻页”式爬虫,从上一页的response得到下一页的url。

(3)散花式爬虫

从第一步是第1个request返回的response中得到n多个目标url,第二步再爬取这n个url,也许还有第三、四步,可见散花式爬虫的工作量是扣链式的n倍,常见案例如在电商平台搜索关键词返回商品,再爬取所有商品的评论内容。

“翻页”式爬虫 特别说明

“翻页”式爬虫 在一定条件下即可做成单线式爬虫,也可做成扣链式爬虫。若翻页的url是有规律的,如url上某参数会带上页数,当页数为3即请求第3页,加上能预知总页数,就罗列出所有页的url,这样就可做为单线式;若翻页的ulr是无规律、或加密过的,那只能一页接着一页往下爬,那只能做扣链式。

2.完整爬虫工作环节

(1)单链式爬虫流程图

(2)扣链式爬虫流程图

(3)散花式爬虫流程图

从上3图可知,扣链式爬虫流程是单线式的重复n次,散花式爬虫流程是扣链式的重复n次。下面就以单线式爬虫为例,介绍其各个环节。

target pool :爬取目标合集,如一万某电商平台商品的ulr。

request:向目标server请求url,爬虫最核心的环节;为什么说是最核心,因为该环节要穿越“反爬”难关并从目标server带回想要的信息,至于“反爬”内容可参考上篇《挡住爬虫去路的3座大山》;按请求方法可分为直接请求、模拟浏览器两种模式。

response:即request返回的结果,一般是网页源代码,也注意其编码格式,如utf8。

verify:即检验response是否正确,这环节十分重要,但常被忽略掉,或有伙伴喜欢爬完target pool后再对所有response作检验,这样也是不高效的。verify必不可缺,最好安排在request完一个target url后接着就对该response作检验。verify方法一般有response状态码response内容两种;根据response状态码判断response是否正确是常用的方法,但也有缺陷,就有些狡滑地网站不但封禁你的爬虫request,还让response状态码为200(200表示成功返回);所以单靠response状态码还不够,必须再根据response内容进行判断。如果response内容为空、或有明显的被反爬、被封禁信息,如收到警告信息、或要输入验证码等,这都说明爬取失败。若爬取失败需把target url放回target pool ,重新再爬。

parse:即对reponse进行解析,通俗点就是从reponse提取想到的数据。实现parse的工具有许多,可参考上篇文章《python常用爬虫框架与工具》。parse环节还有另一重要功能,若提取不到想要的数据,但又十分肯定是有数据的,那说明response返回的信息不全面,需把target url放回target pool重爬。

storage:存储结果数据,除了保存被解析出来的目标数据,更重要的是保存好response内容(最好存档为html格式);为什么要保存response内容,因为网页内容是实时变动的,需要把当时response保存下来作为“凭证”,若有谁质疑你的目标数据,只要把html格式的response展示给他看就无话可说了。我刚开始搞爬虫没有保存response的习惯,就吃过这种网页内容发生改变而货不对版的哑巴亏,教训,教训。

致此,谢谢浏览本篇文章的读者,若有补充或建议,请留言,不胜感激。

数据分析 - 跨境电商爬虫成长记 之 第三篇:完整的爬虫工作环节有哪些相关推荐

  1. 数据分析 - 跨境电商爬虫成长记 之 第一篇:python常用爬虫框架与工具

    爬虫干货文章 打造一个健壮高效的网络爬虫-崔庆才 python爬虫系列版 Python高级-从趟过的坑中聊聊爬虫.反爬.反反爬 爬虫常用框架 scrapy框架:目前较成熟与常用的爬虫框架 Crawle ...

  2. 跨境电商erp系统排行榜,跨境电商软件erp排名,跨境电商erp哪个好一点?

    想要告别跨境电商erp软件选择困难症,挑选到自己心仪的跨境电商erp系统,大家看这篇文章就够了! 跨境电商erp软件 跨境电商erp的英文全称是Enterprise Resource Planning ...

  3. 零经验出海报单,看跨境电商小白如何在Starday突出重围

    随着大数据.云计算等一系列新颖先进的技术概念引入,全球经济市场呈现出以往难以想象的活跃,世界各地的贸易订单都可以借助互联网渠道在数秒内完成全流程."跨境电商"这一概念正是全球互联网 ...

  4. 跨境电商支付方式和如何玩转跨境支付

    跨境电商支付方式推荐 跨境电商的关键问题是支付,我们确实很难身在家乡国家,用家乡国家文化去感知异国文化,商业亦是如此,我们必须摒弃主观,用客观的思想,亲自去沟通,去理解.电商里很重要的关键问题是支付问 ...

  5. 跨境电商支付方式之如何玩转跨境支付

    跨境电商的关键问题是支付,我们确实很难身在家乡国家,用家乡国家文化去感知异国文化,商业亦是如此,我们必须摒弃主观,用客观的思想,亲自去沟通,去理解.电商里很重要的关键问题是支付问题,正确的合适的支付方 ...

  6. 跨境电商必看:亚马逊数据采集规则推荐

    跨境电商最近非常火爆,虽然目前做跨境电商在通关及仓储物流环节还存在着难点,但是随着各地政府相继推出各种促进跨境电商交易的扶持政策,跨境电商的大环境日趋明朗,逐渐呈现火爆的状况. 对于做跨境电商的企业和 ...

  7. 防封号低风险,跨境电商必须了解的WhatsApp Business API指南

    关键词:跨境电商,WhatsApp Business API 作为全球领先的即时通讯应用程序,目前,越来越多的企业尤其是跨境电商选择利用WhatsApp进行商业通信与活动.除了我们比较熟悉的Whats ...

  8. 中国智造助推跨境电商企业迈向全球市场

    现今,跨境电商行业发展的如火如荼,中国智造也在不断助推跨境电商企业迈向全球市场.业内人员在新常态下的思想也有了一些改变,现在的跨境电商都是"平台+物流",在物流环节,也需要我们的专 ...

  9. 跨境电商ERP中的自动化 2.平台商品和本地单品自动绑定

    今天继续讲解跨境电商ERP中的自动化,这篇主要讲解平台商品和本地单品如何绑定,从而实现对本地单品库存的管理. 博客搬家啦,新地址: https://www.navisoft.com.cn 平台商品有个 ...

最新文章

  1. 最新阿里Java技术面试题,看这一文就够了!
  2. 正则表达式实现最小匹配
  3. 利用Log Explorer将你已经delete,truncate,drop过的数据进行恢复
  4. django orm 常用查询筛选
  5. VTK:几何对象之Plane
  6. FJUT3703 这还是一道数论题(二分 + hash + manacher 或者 STL + hash 或者 后缀数组 + hash)题解...
  7. dede 文章列表页如何倒序排列
  8. express学习 - (1)环境配置与第一个express项目
  9. Rust : 如何将C字符串转换为Rust字符串并通过FFI返回?
  10. 高清优质PPT模板20篇下载(金融投资系列)
  11. settings.xml
  12. 数据结构——图的应用
  13. MPAndroidChart的BarChart用法
  14. 由偷菜/抢车位引发的思考
  15. SEO技巧:快速学会SEO技术的方法
  16. 微信小程序之页面样式以及背景图片显示问题
  17. 小学生C++趣味编程 上机作业 每日一练 第1单元 顺序结构
  18. 性价比天花板:如何在预算有限的情况下吃得美味又健康
  19. Windows系统Git安装教程,超详细的安装过程!附软件资料~
  20. Ubuntu下系统CPU/内存/GPU/硬盘监控查看指令

热门文章

  1. java mysql 语句中 大于 小于 等于 的写法
  2. 阿里云 ACM + Springboot 整合
  3. nvidia driveos(Drive AGX Orin板子P3710/P3663)单独烧录kernel
  4. iOS系统 查看设备序列号 获取UDID
  5. python tkinter label靠左对齐_如何在Tkinter网格中左对齐标签和输入框
  6. 振荡中医学习感悟——姥姥的咳嗽
  7. 指数函数和正弦函数相乘
  8. 【收藏】学习资源汇总
  9. 1196: 最后的胜利者
  10. nfc ntag21x ultralight 内存结构