60 lines
1.7 KiB
Java
60 lines
1.7 KiB
Java
package cmy.newsspider.pageextractor;
|
|
|
|
import cmy.newsspider.record.NewsRecord;
|
|
import org.jsoup.Jsoup;
|
|
import org.jsoup.nodes.Document;
|
|
|
|
import java.io.IOException;
|
|
|
|
public class IFengExtractor extends PageExtractor {
|
|
|
|
public IFengExtractor(String url) {
|
|
super(url);
|
|
}
|
|
|
|
|
|
@Override
|
|
public String getTitle() {
|
|
if (pageDoc == null) return "";
|
|
var titleElement = pageDoc.select("div[class^=artical] h1[class^=topic-]");
|
|
if (titleElement.isEmpty()) {
|
|
titleElement = pageDoc.select("#artical_topic");
|
|
}
|
|
return titleElement.text().strip();
|
|
}
|
|
|
|
@Override
|
|
public String getSource() {
|
|
if (pageDoc == null) return "";
|
|
var sourceElement = pageDoc.select("div[class^=artical] div[class^=info-] p[class^=time]>span[class^=publisher]");
|
|
if (sourceElement.isEmpty()) {
|
|
sourceElement = pageDoc.select("span[itemprop=publisher]");
|
|
}
|
|
return sourceElement.text().strip();
|
|
}
|
|
|
|
@Override
|
|
public String getDate() {
|
|
if (pageDoc == null) return "";
|
|
var dateElement = pageDoc.select("div[class^=artical] div[class^=info-] p[class^=time]>span");
|
|
if (dateElement.isEmpty()) {
|
|
dateElement = pageDoc.select("span[itemprop=datePublished]");
|
|
if (dateElement.isEmpty()) {
|
|
return "";
|
|
}
|
|
}
|
|
return dateElement.get(0).text().strip();
|
|
}
|
|
|
|
@Override
|
|
public String getContent() {
|
|
if (pageDoc == null) return "";
|
|
var contentElement = pageDoc.select("div[class^=artical] div[class^=main_content-]");
|
|
if (contentElement.isEmpty()) {
|
|
contentElement = pageDoc.select("div #artical_real");
|
|
}
|
|
return contentElement.text();
|
|
}
|
|
|
|
}
|