1.集成webmagic jar包(也可以使用原始的httpclient和Jsoup)
<!-- 集成webmagic包-->
<dependency>
<groupId>us.codecraft</groupId>
<artifactId>webmagic-core</artifactId>
<version>0.7.3</version>
</dependency>
<dependency>
<groupId>us.codecraft</groupId>
<artifactId>webmagic-extension</artifactId>
<version>0.7.3</version>
</dependency>
2.实现接口 PageProcessor
/**
* @Author bjiang
* @Description //TODO 实现CommandLineRunner可实现启动服务后即可执行run方法
* @Date 2021/7/21 9:09
* @Version 1.0
*/
@Component
@Slf4j
public class TestSpider implements CommandLineRunner, PageProcessor {
private Site site=Site.me().setCharset("UTF-8").setTimeOut(30000);//设置超时时间,字符集机或者其他的一些配置
@Override
public void run(String... args) throws Exception {
for(int i=1;i<=2000;i++){
String url="https://*****.com";
log.info("++++++++++={}",url);
Spider.create(new TestSpider()).addUrl(url).run();
}
}
@Override
public void process(Page page) {
List<String> messageList=page.getHtml().css("div.pppp").all();//获取class标签为ppp的div 详情请看css选择器
//page.getHtml().xpath("//div[@id=p1]");//详情请见xpath语法
//page.getHtml().css("div#p1").get(); 获取id为p1的div标签
for(String message:messageList){
String result=Jsoup.parse(message).text();//使用jsoup获取标签内容
log.info(result);//打印日志
}
}
@Override
public Site getSite() {
return site;
}