Springboot注入为null的问题

最近因为项目需要自学使用java的一个爬虫框架webmagic

先放中文文档链接:http://webmagic.io/docs/zh/posts/ch1-overview/architecture.html

爬取网站:https://home.meishichina.com/recipe.html

后端采用的是spring boot,因为要爬取一级url的二级url,所以采用的思路是先爬取主页的菜谱url,然后每爬到一个菜谱url,就进入爬取其中盐的信息,于是写了两个service,一个是StartService【爬取一级url】,另外一个是RecipeService【爬取二级url】

webmagic有四大组件【此处只做简要介绍,具体请查看webmagic文档】:

  1.Downloader:作用是下载页面

  2.PageProcessor:作用是解析页面,拿到页面后,你想从这个界面再拿url去下载,或者对这个页面中某些节点信息进行抽取,都是在这里进行的。

  3.Scheduler:管理待抓取的url,可以对待抓取的url进行去重。

  4.Pipeline:在这里可以对解析出来的结果进行处理,比如存到文件中、在控制台打印、还能持久化到数据库中

webmagic流程图:

 

 图示很清晰,也很好理解,节省了解释时间

下面放一下实现过程:

  1.StartService,这是爬取菜谱url的服务。

  2.Sta Processor

 

 

在爬取完成到数据库后,为了防止数据重复,可以对重复数据进行删除,并且只保留一条

  sql语句如下

  为什么要形成一个t表和b表呢,因为如果缺少任意一个,语句就会报错,大概意思就是不能在查询表的时候又去更新表


DELETE from recipe WHERE
id not in (select id from (select min(id) as id from recipe group by recipe_name)a);

 

 

 XPATH

 

 

遇到的问题:

  在pipline中注入service为null。在网上查了很多方法,最后这个方法是成功了

  链接:https://blog.csdn.net/u014481096/article/details/78476931?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

  区别主要是在service前多了private static,然后还使用了set方法来注入

推荐这些文章:

vue路由url变化但是页面不跳转

一、监听路由
watch: {
// 方法1 //监听路由是否变化
'$route' (to, from) {
if(to.query.id !== from.query.id){
this.id = to.query.id;
this.init();//重新加载数据
...

文章标题:Springboot注入为null的问题
文章链接:https://www.dianjilingqu.com/4277.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>