java爬虫Gecco爬取豆瓣top250的电影数据
这几天,一个作业需要用到java爬虫,于是在这里记录一下
导入依赖
<dependency>
<groupId>com.geccocrawler</groupId>
<artifactId>gecco</artifactId>
<version>1.0.8</version>
</dependency>
获取所有url
top250的url是那些链接
我们可以写一个类来保存那些的url,如下parentName是保存选择器 “p” 文字信息,可要可不要;categorys是保存选择器 “a” 的url的;它的类型List <HrefBean,HrefBean如下图,它可以保存 a 标签的 href 和其包含的文字
Category类
package com.hzxy.reptile.crawl;
import com.geccocrawler.gecco.annotation.HtmlField;
import com.geccocrawler.gecco.annotation.Text;
import com.geccocrawler.gecco.spider.HrefBean;
import com.geccocrawler.gecco.spider.HtmlBean;
import java.util.List;
/**
* 创建时间 2021/7/1 16:10
* 爬取数据的封装类
* @author Ye
* @version 1.0
*/
public class Category implements HtmlBean {
private static final long serialVersionUID = 3018760488621382659L;
@Text
@HtmlField(cssPath="p")
private String parentName;
//保存url
@HtmlField(cssPath="a")
private List<HrefBean> categorys;
public String getParentName() {
return parentName;
}
public void setParentName(String parentName) {
this.parentName = parentName;
}
public List<HrefBean> getCategorys() {
return categorys;
}
public void setCategorys(List<HrefBean> categorys) {
this.categorys = categorys;
}
@Override
public String toString() {
return "Category{" +
"parentName='" + parentName + '\'' +
", categorys=" + categorys +
'}';
}
}
这是获取所有url的类,匹配url https://movie.douban.com/top250,找到所有.info选择器的元素,把a的url赋值给Category的categorys,文字赋值给parentName
AllSort类
package com.hzxy.reptile.crawl;
import com.geccocrawler.gecco.annotation.Gecco;
import com.geccocrawler.gecco