웹 크롤러 - Java를 사용하여 정보를 크롤링하고 순위 시스템을 만드는 방법은 무엇입니까?
迷茫
迷茫 2017-06-12 09:19:16
0
4
671

Java 웹을 배우다가 우연히 재미있는 프로젝트가 생겼습니다.
우리 학교는 아침 달리기에 신용카드를 요구합니다. 스포츠부에서는 문의 웹사이트를 제공하지만 인터페이스는 제공하지 않습니다.
학교 웹사이트의 정보를 수집하여 데이터베이스에 저장하는 웹사이트/WeChat 백엔드를 만들고 싶습니다. 그러면 사용자는 내 웹사이트/WeChat을 통해 자신의 실행 기록을 확인할 수 있습니다. 그리고 이러한 기록을 기반으로 순위 및 기타 기능을 표시합니다.

문의하시려면 학번과 이름만 입력하시면 됩니다. 이 데이터는 이미 제공되어 있습니다.

시뮬레이트된 로그인은 httpclient를 사용하여 구현됩니다. 전체 페이지가 확보됩니다
페이지는 기록을 표시하는 테이블입니다. 페이지에서 데이터를 추출하려면 무엇을 사용해야 합니까?

자바 웹의 방향에 관해서는 jsp만 사용하여 추가, 삭제, 수정, 확인을 작성하겠습니다. 나는 다음 내용에 대해 잘 모른다.

사용자 쿼리를 반환하기 위해 이러한 백그라운드 관리 크롤링 작업을 수행하고 싶습니다.
어디부터 학습을 시작해야 하나요? 아니면 어떤 종류의 기술/프레임워크가 사용됩니까?

쿼리 웹사이트 정보:
한 요소는 달리기 운동 횟수입니다.
다음은 해당 기록입니다. 각 기록은 분 단위로 실행 시간을 표시합니다.

크롤링이 가장 어려운 부분은 아닙니다. 문제는 이러한 관리 시스템을 어떻게 구축할 것인지에 대한 아이디어가 없습니다.
댓글을 달 수 없다는 걸 깨달았습니다. . .

감사합니다!

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(4)
Ty80

별다른 방법이 생각나지 않아서 그냥 아무렇지도 않게 말했어요.

Jsoup을 사용하여 페이지 데이터를 크롤링하세요, 하하

代言

몇 가지 사항을 생각해보고 간단히 이야기해 보겠습니다.
1. 데이터 캡처, 자신만의 크롤러 프로그램 작성, 데이터 크롤링을 위한 시간 규칙 수립 등이 가능합니다.
2. 데이터 처리, jsoup을 통해 웹페이지 콘텐츠 캡처 또는 기타 웹페이지의 유효 콘텐츠를 추출하고 데이터 구조를 설계하는 방법 학생 ID는 학생 ID를 통해 연관되는 학생 테이블과 아침 달리기 기록 테이블이 있을 수 있습니다. 횟수로 정렬하는 것인데, 생각해보면, 시간으로 정렬하는 것이 무리라면 실제 아침 런닝타임을 판단할 방법이 없기 때문에 그냥 횟수로 얘기하면 됩니다. 실행 횟수 필드를 학생 테이블에 저장하고, 기록 테이블을 통한 쿼리를 줄이고, 효율성을 향상시킨다는 것은 데이터 처리가 필요할 때 이 필드를 유지한다는 의미입니다

三叔

일반적으로 httpclient这样的工具将返回包拿到,解析报文实体(这里指html页面),接下来就是利用xpath、正则、类似于jQuery方式解析DOM 요소를 기반으로 원하는 데이터(예: jsoup 패키지)를 얻습니다. 그래도 여전히 번거롭다면 webmagic 프레임워크를 사용할 수 있습니다

巴扎黑
  1. 로그인 시뮬레이션: 브라우저를 사용하여 로그인 페이지를 열고 학생 ID와 비밀번호를 수신하는 URL을 관찰합니다. 로그인을 시뮬레이션할 때 응답 헤더에서 Set-cookie 필드 정보를 구문 분석합니다.

  2. 데이터 캡처: 스포츠 데이터 페이지에 대한 가져오기 요청을 시작하고(이전 단계에서 얻은 쿠키 필드 가져오기) 응답을 얻은 다음 정기적인 구문 분석을 수행하여 데이터를 얻습니다.
  3. 권장사항: 사용자가 매번 쿼리하는 데이터(예: 2시간 동안)를 캐시하려면 데이터베이스에 쿼리된 데이터를 저장할 수 있는 Redis를 사용하는 것이 좋습니다. 먼저 Redis에서 데이터를 가져오고, 검색할 수 없는 경우 로그인을 시뮬레이션하세요. 새로운 데이터를 얻으려면. 데이터베이스 계층은 개인적으로 필요없다고 생각하는데, 가능하다면 데이터 분석 등도 할 수 있습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿