java setseed,基于webmagic的种子网站爬取

news/2024/5/13 0:14:23/文章来源:https://blog.csdn.net/weixin_29473141/article/details/115997127

1. 概述

因为无聊,闲来没事做,故突发奇想,爬个种子,顺便学习爬虫。本文将介绍使用Spring/Mybatis/webmagic等框架构建项目并爬取种子磁链。

2. 项目搭建

如下图为本项目的工程结构,主要代码实现在Spider包中。

22ce02466c961672d49a6d6c9b1585ed.png

3. 数据库设计

参考众多的种子网站,找到描述种子的常用属性,如下:

78867c8fe4349f1abebd9e0b490dcb64.png

4. 程序实现

1. 爬虫配置

在抓取种子之前,首先要确定所要抓取的网站地址、编码、抓取时间间隔、重试次数等信息,如下:

//设置网站源

private static String netSite="PushBT";

private Site site = Site.me().setDomain("http://www.pushbt.com")

.setCharset("UTF-8").setSleepTime(1000)//编码

.setRetryTimes(3);//重试次数

private static String BASE_URL="http://www.pushbt.com";

2. 逻辑编写

process方法是爬虫的核心接口,所有的属性抽取都在此方法中实现

@Override

public void process(Page page) {

//定义如何抽取页面信息,并保存下来

List links = page.getHtml().xpath("//table[@class='items']//tr[@class='odd']/td[2]/a/@href").all();

//将需要待爬的网页地址都存下来,以待后续从中取出

targetUrlList=StringUtil.linkURL(BASE_URL, links);

page.addTargetRequests(targetUrlList);

Seeds seed = new Seeds();

// 获取名称

String name = page.getHtml().xpath("//ul[@id='filelist']//li/span/@title").toString();

if (name==null||"".equals(name)||service.isExistByName(name)) {//名称为空,则跳过;已存在(true),则跳过

page.setSkip(true);

count++;

LOG.info("skip the "+count+" ,title : "+name);

return;

}

page.putField("name", name);

seed.setSeedName(name);

// 获取hash值(无hash值,默认为null)

//String hash = page.getHtml().xpath("//p[@class='dd desc']//b[2]/text()").toString();

page.putField("hash", null);

seed.setSeedHash(null);

// 描述(没有描述信息,则默认为名称)

//String desc = page.getHtml().xpath("//div[@class='dd filelist']/p/text()").toString();

page.putField("desc", name);

seed.setSeedDes(name);

// 文件个数

String number = page.getHtml().xpath("//ul[@class='params-cover']/li[4]/div[@class='value']/text()").toString();

page.putField("number", number);

seed.setNumber(number);

// 文件大小

String size = page.getHtml().xpath("//ul[@class='params-cover']/li[5]/div[@class='value']/text()").toString();

page.putField("size", size);

seed.setSize(size);

// 获取收录时间

String includeDate = page.getHtml().xpath("//ul[@class='params-cover']/li[2]/div[@class='value']/text()").toString();

page.putField("includeDate", includeDate);

seed.setIncludeTime(includeDate);

//最近下载时间

String recentlyDown = page.getHtml().xpath("//ul[@class='params-cover']/li[3]/div[@class='value']/text()").toString();

page.putField("recentlyDown", recentlyDown);

seed.setRecentlyDown(recentlyDown);

// 人气

String popularity = page.getHtml().xpath("//ul[@class='params-cover']/li[6]/div[@class='value']/text()").toString();

page.putField("popularity", popularity);

seed.setPopularity(popularity);

// 下载速度

//String speed = page.getHtml().xpath("//p[@class='dd desc']//b[7]/text()").toString();

page.putField("speed", SpiderUtil.getSpeed(popularity));

seed.setSpeed(SpiderUtil.getSpeed(popularity));

// 获取磁力链接

String magnet = page.getHtml().xpath("//ul[@class='params-cover']/li[9]/div[@class='value']/a/@href").toString();

page.putField("magnet", magnet);

seed.setMagnet(magnet);

// 标签(在详情页面没有tag,暂时以热门搜索为tag)

List tags = page.getHtml().xpath("//div[@class='block oh']/a/span/text()").all();

page.putField("tags", tags);

seed.setTag(tags.toString());

seed.setCreateTime(new Date());

seed.setUpdateTime(new Date());

seed.setSource(netSite);

seed.setCategory("movies");

//保存到数据库

service.insert(seed);

}

3. 其它部分编写

例子用到的其他部分代码,如MVC,数据库操作等,不是本章节的重点,所以不一一介绍了

5. 成果展示

6f7d3d509b8aadad1b8edbb77553f835.png 基于webmagic的种子网站爬取

注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_822011.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外国优秀网页html,200个优秀的国外设计网站推荐

这个系列向大家推荐了200个优秀的国外设计网站,包括网页设计、名片设计、Logo设计和包装设计等等,设计师们可通过这些网站收集的优秀设计作品来获取灵感,进而设计出更具有创意的作品,设计师们也可以把自己得意的作品提交到这些网站…

Linux-运维网站综合架构分析

前言 如何规划一个网站的架构是十分重要的,一个好的网站架构可以给网站带来安全性,维护更加简单,服务更加稳定等等… 接下来便简要简述一下,一个网站的架构内容,其中涉及的服务器与所需软件 正文 集群架构概念图示 …

java无法验证证书_如何解决“证书无效,不能用于验证本网站的身份”错误?...

问题是,如何解决“证书无效并且不能用于验证本网站身份”的错误?。如何解决“证书无效,不能用于验证本网站的身份”错误?下面是详细信息:我有一个签名的小已经工作正常,直到我更新Java来8u25(1.8.0_25-B18)…

HTML制作菜鸟教程网站首页

这是我们要制作的网站首页 我们接下来将分块进行解析: 顶端模块: 我们将顶端模块分为两个div,分别通过float属性和margin属性达到我们想要的布局效果. 此处我试用的高和宽皆为像素定值,实际很多地方高都不需为定值,使其根据内容自适应大小即可.因为是像素设置的原因,所以当浏…

boot入门思想 spring_SpringBoot入门建站全系列(二十一)Mybatis使用乐观锁与悲观锁...

SpringBoot入门建站全系列(二十一)Mybatis使用乐观锁与悲观锁一、概述之前有两篇《SpringBoot入门建站全系列(三)Mybatis操作数据库》和《SpringBoot入门建站全系列(四)Mybatis使用进阶篇:动态SQL与分页》介…

cdn对php网站的加速效果,配置七牛自定义域名cdn加速,让你的网站飞起来

之前发过一篇是没有备案的,使用测试域名来缓存静态文件,效果也是杠杠的。如果你还没有备案,先看这篇文章吧,域名没备案使用七牛cdn加速 。步入正题了(为了节约博主发文的时间,尽量少用文字,多以图片展示&am…

360网站卫士能防服务器吗,360网站卫士测评

最近小编的主机商在主机控制后台开通了360网站卫士的功能,在了解了一些关于360网站卫士的功能之后,本站开始试用这款用于保障免受攻击,在开通一周之后,小编就来所说对这款360网站卫士应用的试用感受!首先让小编感受最为深刻的是“…

服务器绑定网站域名,服务器网站绑定域名

服务器网站绑定域名 内容精选换一换这个是浏览器的设置,没绑定SSL证书的,访问都会有这个提示。您可以为您的网站添加SSL证书。不一定。如果您需要通过HTTPS协议访问网站,就需要添加SSL证书,云速建站支持第三方免费SSL证书的添加。…

大型网站架构技术演进(史上最全)

1. 概述 本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。 2. 基本概念 在介…

制作网站代码_网站制作的六个流程,一个都不能少

随着时代的发展,有新企业的诞生必然会伴随着旧企业的倒闭,新企业的成立必然会有网站制作的需要,那么这个网站制作的作用就不言而喻了,可以宣传企业的文化,加强企业在互联网上的传播。当然了,新建站的公司必…

python django 如何部署_【实战演练】Python+Django网站开发系列02-Django完整开发环境部署...

#本文欢迎转载,转载请注明出处和作者。上一篇我们讲到已经安装好了python3.8.1与django框架,并且直接启动了服务,但是目前并没有任何我们自定义的内容。我们网站开发的最终目标,是开发出一个简单的学生选课管理系统。系统需求&…

设计电子商务网站建设方案_成都婚纱摄影网站建设规划设计方案!

婚姻生活是人生道路中的一件大事儿,现阶段婚纱摄影行业相关的企业慢慢转型,大家对婚纱照的要求也逐渐转型为人性化、多元化,伴随着互联网的转型及当代生活的节奏,传统式的拍摄方法已逐渐被替代,成都婚纱摄影网站建设也是能快速获取顾客关注度十分重要的一…

网站迁移到新服务器的步骤_怎样将网站迁移至云服务器?需要注意什么?

经历过虚拟主机、VPS的使用,也慢慢从什么都不太熟悉的新用户变成了老油条,我知道,很多人把网站从日渐熟悉的传统服务器迁移到云服务器时,心里或多或少不是滋味,有不舍,当然更多的是未知的担忧。所以&#x…

eclipse复制代码连接数据库404_什么是404页面,404页面对网站有什么影响

我们在浏览网页的时候,经常会在打开网页的时候发现上面大大的写着一个 “404”字样的页面,而且显示“你所浏览的页面已经不在了”这样的页面到底有什么样的含义呢?又对网站有什么样的影响?404页面是客户端在浏览网页时&#xff0c…

oracle19删除之前的主目录用户_百度搜索暂停快照删除服务,是否影响SEO优化?...

短视频,自媒体,达人种草一站服务最近据百度官方公告显示,百度百度快照投诉删除入口目前暂停关闭,官方系统批量删除快照业务暂时停止服务,未来网页快照删除和更新问题,需站长们个人手动到百度网页搜索结果底…

textview 大小自适应_上海自适应网站建设注意要点有哪些-回声网络

上海自适应网站建设注意要点有哪些?随着智能手机的普及,移动互联网发展也越来越快速。对于企业来说,仅仅只有一个PC站肯定是不行了,而为了节约成本和方便管理,自适应网站建设也就越来越受欢迎。相较于普通的PC站&#…

nicetool好工具_上进青年研习社丨这6个工具合集网站,抵过上百个软件!

文丨小渔不知道你们有没有这样的经历:为了一些小的需求,在手机上或是电脑上下了一堆软件。虽然用过觉得也挺好用的,但是平时的使用频率真的不高啊。等你把它们都卸载了,过了一段时间突然又需要用它了。所以,今天小渔要…

百度小程序读取服务器数据,百度小程序如何进行异步获取网站数据

近期百度小程序是非常热门的,越来越多的企业都开始加入到百度小程序的正营来,对于百度小程序的开发过程中也难免需要去请求网站的数据,其实对于百度小程序请求网站的数据和微信小程序请求网站的数据操作是一样的也没有太大的区别。下面站优云…

python 小说爬虫_初次尝试python爬虫,爬取小说网站的小说。

本次是小阿鹏,第一次通过python爬虫去爬一个小说网站的小说。 下面直接上菜。 1.首先我需要导入相应的包,这里我采用了第三方模块的架包,requests。requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多,…

windows server 2008为什么制作的网站打不开_【U盘】小巧实用开源免费的U盘系统启动盘制作工具...

排版|设计|配图©孤狼小航小巧实用开源免费的U盘系统启动盘制作工具和格式化U盘的小工具,它可以快速将ISO镜像文件制作成可引导的USB启动安装盘,支持Windows或Linux启动,堪称写入镜像速度最快的U盘系统制作工具。获取方式将网址直接复制浏…