더러 운 사이트 검색. - 재 미 있 는 코드.
사고의 방향
생각 이 비교적 간단 하 다.먼저 사 이 트 를 옮 겨 다 니 며 어떤 사 이 트 를 옮 겨 다 닐 때 이 사이트 의 첫 페이지 의 텍스트 내용 만 필요 하 다.그 다음 에 미인, 섹시 등 편향 적 인 키 워드 를 만 들 었 다. 이 럴 때 정규 표현 식 으로 전체 웹 페이지 를 일치 시 키 고 일치 하 는 수량 이 충분 하면 특정한 편향 이 있 는 사이트 라 고 판단 할 수 있다.
이루어지다
두루
이것 은 기술적 인 함량 이 별로 없 기 때문에 for 순환 을 하면 ok 입 니 다. 사이트 가 너무 많 기 때문에 몇 분 이 든 가능 합 니 다. 우 리 는 전 세계 의 작은 사 이 트 를 모두 찾 아서 특정한 범 위 를 설정 하면 됩 니 다.그리고 기어 오 르 는 효율 을 높이 기 위해 서 는 다 중 스 레 드 를 이용 해 기어 간다.
public static void main(String[] args) {
char[] charArr = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'0','1','2','3','4','5','6','7','8','9'};
ArrayList urlList = new ArrayList();
for(final char ch0 : charArr) {
for(final char ch1 : charArr) {
for(final char ch2 : charArr) {
new Thread(new Runnable() {
@Override
public void run() {
YellowNetSniffer yellow = new YellowNetSniffer();
yellow.crawl("http://www.av" + ch0 + ch1 + ch2 + ".com");
}
}).start();
}
}
}
}
기어 오 르 기 일치
딱 두 마디 만.첫 페이지 의 내용 을 가 져 오고 정규 표현 식 으로 싱크로 율 을 일치 시 킵 니 다.
public boolean crawl(String url) {
// , , Jsoup,
Document doc = null;
try {
doc = Jsoup.connect(url)
.header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36")
.timeout(1000 * 5)
.get("gbk");
} catch (Exception e) {
return false;
}
String content = doc.text();
// ,
String patternStr = "( | | |18 |18 | | | | | | | | | | | | | | | | | |sexy|sex|fuck|fucked|breast|naked)";
Pattern pattern = Pattern.compile(patternStr, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(content);
int count = 0;
String str = "";
while(matcher.find()) {
int start = matcher.start();
int end = matcher.end();
str += content.substring(start, end) + "@";
count++;
}
if (count > 0) {
System.out.println(url);
System.out.println(str);
System.out.println(" " + count + " ");
System.out.println();
return true;
}
else {
return false;
}
}
넓히다
Jsoup 은 매우 좋 은 제3자 파충류 도구 이기 때문에 본 고 는 이 라 이브 러 리 를 사용 했다.그러나 이 도구 로 사이트 의 텍스트 내용 을 한 단계 얻 는 작업 을 했다.사실 이 단 계 는 스스로 입력 흐름 으로 이 루어 질 수 있다.제 가 쓰 면 자 유 롭 게 쓸 수 있 습 니 다. 전에 Jsoup 안에 구덩이 가 있 었 는데 꺼 낸 것 이 어 지 러 웠 고 마지막 단 계 는 제 가 쓴 것 으로 해결 한 것 으로 기억 합 니 다.
public class HtmlInputStream {
public static String getContent(String originurl) {
StringBuilder result = new StringBuilder();
try {
URL url = new URL(originurl);
URLConnection conn = url.openConnection();
conn.setRequestProperty("user-agent",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36" +
" X-Requested-With:XMLHttpRequest");
InputStream inOrigin = (InputStream) conn.getContent();
InputStreamReader in = new InputStreamReader(inOrigin, "UTF-8");
int ch;
while((ch = in.read()) != -1) {
result.append((char)ch);
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result.toString();
}
}
마지막.
마지막 으로 마음껏 둘 러 볼 수 있 습 니 다 ~ 일 마치 고!
어서 오 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.