当前位置:首页 > 奇闻趣事

webmagic 一篇文章看懂爬虫:优秀国产开源爬虫框架 WebMagic 剖析

爬虫的本质:基于Http协议请求目标地址,获取响应结果,分析并存储。

01

正式介绍

1.爬行动物基础知识

2.国内优秀开源爬虫框架的webmagic分析

02

爬行动物基金会

1.爬行动物的本性

爬虫的本质:基于Http协议请求目标地址,获取响应结果,分析并存储。

2.HTTP请求

请求头:封装http请求的基本信息,如用户代理、引用者、cookie、接受语言和请求方法(发布、获取)。

响应头:它封装了服务器返回的头信息,如内容语言内容语言、内容类型内容类型文本/html等。,服务器类型(tomcat、jetty、nginx等。),以及状态响应状态(如200、302、404等。).

响应:来自服务器的具体返回有各种类型,比如html页面、js代码、json字符串、css样式、stream等等。

3.分析

一般web基本都是返回html页面和json。

Xpath:解析能力强的xml路径语言。chrome和firefox有相应的工具来生成XPath语法,可以轻松解析标准html文件。

Json PATH: json PATH是Json解析的利器,非常类似于xpath语法,用非常简洁的表达式解析json字符串。

Css选择器:这里的css选择器有点类似于jquery,jquery通过元素的css样式来定位元素,著名的jsoup提供了丰富的css选择器

表达式

字符串分段

4.困难

分析请求

随着ajax的普及,很多网站采用动态呈现模式,请求不再简单的返回html模式,给抓取带来很大的困难。一般异步请求返回的json只能具体分析,解析成我们需要的数据格式。另一种是通过服务器内部转发来渲染页面,这是最难的。不是通过浏览器请求,而是在服务器跳转几次后将请求呈现给浏览器。此时,需要使用模拟器来模拟请求,如selenium。

网站限制

Cookie限制:很多网站登录后只能绕过过滤器才能访问,所以此时必须模拟cookie

用户代理:为了防止爬虫,有些网站必须是真正的浏览器才能访问。此时,可以模拟用户代理

请求加密:如果网站的请求被加密,就看不到请求的真实面目。这个时候只能猜测了。通常,加密将使用简单的编码,如base64、urlEncode等。如果太过复杂,只能穷尽式尝试。

Ip限制:有些网站会限制爬虫的ip,然后要么更改ip,要么伪装IP

曲线方案:很多网站都有对应pc的综合保护。有时候可以换个思路,请求app服务试试,通常会带来意想不到的收获。

攀登深度

网站通常的形式是一个页面超链接到另一个页面,理论上可以无限扩展。这时候必须设置一个爬行深度,不能无休止的爬行。

总结

实质上爬虫只做两件事:请求和解析结果,但是爬虫的开发非常困难。需要不断分析网站的请求,不断跟随目标网站升级程序,尝试解密破解目标网站的限制,并以此作为网络攻防。

03

网络魔术建筑分析

Webmagic是国产的优秀爬虫框架,使用方便,提供了多种选择器,如css选择器、xpath、regular等,并预留了大量扩展接口,如Pipeline、Scheduler、Downloader等。

下面重点分析Spider类的几个重要方法,包括锁的使用

1、添加网址

任务结束时间

队列为空,所有正在运行的请求完成,exitWhenComplete设置为true,则任务退出。此时必须注意,当页面请求太慢时,新解析的url将无法进入队列,然后任务退出将导致抓取不完整。一般将exitWhenComplete设置为false,但有时候启动两个爬虫时,必须在前一个爬虫完成后再运行下一个爬虫,这时就会出现问题。为了实现这个场景,您必须更改webmagic源代码

新请求的等待时间,默认为30s

如果调度器队列中有url,当任务被抛出线程池,页面下载成功时,执行pageProcessor的process方法,如果有流水线,执行流水线链中的process方法

需要注意的一点是,对于PageProcessor接口和Pipeline接口的实现,要特别注意线程安全,切记不要将元素插入到单实例集合对象中。

线程池可计数线程池的执行方法

有陷入僵局的风险。当threadAlive的数量大于或等于threadNum线程的数量时,reentrantLock.lock()应用锁,并循环条件. await()。同时,executorService.execute方法中threadAlive的减量Get也必须申请锁。此时双方等待资源造成僵局。这个小bug是可以调整的,不妨碍大局。到时候,官方会提到一个问题

总体来说,Webmagic是一个架构清晰、易于扩展、使用方便的好爬虫框架。

快乐来自分享。

本博客由作者原创,转载时请注明出处:

开源中国:https://my.oschina.net/u/1778239/blog/1588821

1.《webmagic 一篇文章看懂爬虫:优秀国产开源爬虫框架 WebMagic 剖析》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《webmagic 一篇文章看懂爬虫:优秀国产开源爬虫框架 WebMagic 剖析》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1147080.html

上一篇

中国大陆总人口13.8亿 男比女多3359万

下一篇

福建一“红通”人员 被警方抓捕回国

74家违规失信旅游网站遭关停 北青旅官网等上榜

北京商报今日讯(记者钱宇实习生赵超越)1月24日,国家网办及相关部门关闭了74家严重违规、失信的旅游网站,包括旅游在线、北京青旅公务旅行网、护航网、重庆护航网、龙凤护航网、广州商务护航联盟。这些网站主要存在严重的违规和失信问题,如网站未依法备案...

全国首例! 官员因网站不更新被立案审查

据央视近日报道,国务院办公厅公布2016年全国政府网站第四次抽查。到目前为止,已经通知了数百个不合格的政府网站,但很少有官员被追究责任。但就在几天前,海南省儋州市商务局局长、党委书记董海峰因“长期未更新局网站”被党内给予行政记过、警告处分。记者...

任玩堂 国内十大游戏媒体网站,再不关注就晚了!

  • 任玩堂 国内十大游戏媒体网站,再不关注就晚了!
  • 任玩堂 国内十大游戏媒体网站,再不关注就晚了!
  • 任玩堂 国内十大游戏媒体网站,再不关注就晚了!