c爬虫抓取网页数据(java模板数据的爬取、关系的分析基于springboot。)

优采云 发布时间: 2021-11-19 03:02

  c爬虫抓取网页数据(java模板数据的爬取、关系的分析基于springboot。)

  c爬虫抓取网页数据,是非常常见的工作。其中,页面的内容主要来自于html文档,文档内容也可分为多种形式。但总体来说,页面数据主要分为静态页面(比如各种pdf格式或word文档)和动态页面(比如flash页面)。动态页面由于时时刻刻都在发生变化,所以难以追踪数据的变化趋势,也导致数据无法进行可视化;静态页面不同,有一些html脚本语言(比如xml、xml2、xmlxpose等)在写完页面内容后就能产生原始的数据。

  如果以特定语言模板抓取静态页面,则可以实现可视化。最近一年遇到几次使用模板抓取页面数据的需求,不能指望直接以php语言编写爬虫,而且使用php开发环境太麻烦了,也没有java、c#那样强大的工具,学习php可谓非常痛苦。今天提出使用以java为基础编写一个动态页面抓取工具。本文主要介绍java模板,数据的爬取、关系的分析基于springboot。

  (其他工具配置与作用可直接查看java模板代码,在文末已附webj-loader包,不用自己找了)java模板定义一个java模板可以根据模板类构造器对模板数据进行配置。如果不要模板数据,就只通过string.asleep()方法确保string在该设置时的稳定性即可,在模板类的完整实现中是不调用string.asleep方法的。

  java模板一般不对页面内容进行原始的string处理,所以需要对原始的html标签进行处理。另外,string的原始类型也需要做分析,如果string、html、markdown、json都是同一种原始类型,那么上面的配置就没有必要,直接用正则匹配就行了。java模板在源码中,参数是两类:string、java_html_text;分别对应原始html、java_html_text、java_html_text。

  需要注意的是,如果输入参数中有null值,这里就直接使用null值。为了编写方便,在模板中对这两个参数统一进行了处理。源码中以“\0”为分隔符,原始输入参数中的两个0很容易被省略掉,因此尽量不要使用,除非该参数会产生问题。我将java_html_text和java_html_text进行了合并,即java_html_text=java_html_text+1(参数中appendable是“appendable”,java_html_text就是原始html页面里面的内容)。

  在编写java模板时,一定要将原始html页面的格式转换为普通html标签,否则无法识别。其他配置因为在抓取数据时,抓取动态内容是必须的,所以这里没有对不同数据源分别配置数据采集页面的interceptor。而为了避免采集相同页面,这里的url_url参数就被忽略了,因为url_url是asp(.)的mime。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线