강좌 프로젝트는 CNKI 크롤러 사용이 필요하기 때문에 GitHub에서 검색 후 CyrusRenty의 CNKI-download Warehouse를 찾았으나, Clone 후 사용할 수 없는 것을 발견하여 문서 다운로드 및 인증코드 기능을 제외하고 수정하였습니다. 나머지 기능 테스트가 가능합니다.
캠퍼스 네트워크에 접속하는 것만으로는 Zhiwang이 학교를 식별할 수 없기 때문에(다른 학교의 VPN을 거쳐야 함) o(╥﹏╥)o를 사용하여 문서 기능을 다운로드할 수 없으므로 수정할 수 없습니다. 확인 코드가 발생하지 않았습니다. 각 페이지를 크롤링할 때 충분한 간격을 확보하면 이 문제를 피할 수 있습니다.
PS: NoneType 같은 문제는 대충 try catch로 무시했습니다. 따라서 크롤링 완료 후 엑셀 행에서 특정 행에 데이터가 없는 것을 보면 그냥 노이즈로 삭제하세요~ 그렇다면 모든 필드가 긴급하게 필요합니다. 문제를 제출해 주시면 제가 도와드릴 수 있는지 알아보겠습니다.
PS: 때때로 크롤러를 실행할 때 다음 오류가 보고될 수 있습니다.
이런 경우에는 글로벌 프록시 VPN을 끄시고, 브라우저에 CNKI 주소를 입력하여 정상적으로 입력이 되는지 확인하신 후, 프로그램을 다시 실행해 보시기 바랍니다.
이 프로젝트에 대해 궁금한 점이 있으면 직접 문제를 제기할 수 있습니다. 최선을 다해 도와드릴 수 있기를 바랍니다. 통합할 더 좋은 코드가 있다면 Feichang은 PR을 환영합니다!
다음 내용은 원저자에게서 따온 것이며, 원저자에게 경의를 표합니다∠(°ゝ°)
해당 프로젝트는 CNKI 데이터를 크롤링하기 위해 Python3을 기반으로 구현된 크롤러로 CNKI 고급 검색에 따라 검색이 가능하며 기본 문서 정보, 문서 다운로드, 문서 초록 등 세부 정보 크롤링 기능을 제공합니다.
구현 과정은 내 블로그에서 볼 수 있습니다
프로그램은 다음과 같이 실행됩니다.
자세한 정보 엑셀 테이블은 다음과 같습니다.
다음과 같이 caj를 다운로드합니다.
구문 분석 패킷을 전송하여 데이터를 캡처하는 것은 셀레늄 및 기타 방법을 사용하는 것보다 성능이 약간 더 높습니다.
CNKI의 고급 검색 기능을 이용하면 문서를 보다 효율적으로 검색하고 불러올 수 있습니다.
자세한 정보 캡처 및 caj 문서 다운로드 기능은 네트워크 및 CNKI의 크롤러 방지 상황에 따라 선택적으로 활성화될 수 있습니다.
엑셀 표를 이용하면 필요한 문헌 초록 및 기타 정보를 빠르게 확인할 수 있습니다. 엑셀에서 제공하는 다운로드 링크에 따라 선택적으로 다운로드할 수 있어 과도한 다운로드로 인해 CNKI 네트워크가 역크롤링되는 것을 방지할 수 있습니다.
인증코드 처리 부분에
tesserocr
사용하고 있으나 현재는 인증효과가 그다지 좋지 않아 인증코드 수동식별이 기본적으로 활성화되어 있습니다.
tesseract
로컬로 설치되지 않은 경우 먼저 설치한 다음pip install tesserocr
실행할 수 있습니다. 또는CrackVerifyCode.py
파일의 15, 63, 64행을 주석 처리한 후 설치 명령을 실행합니다.
pip 설치 -r 요구사항.txt
# Config.ini는 프로젝트 구성 파일 # 0은 닫힘 1은 열림 isDownloadFile = 1 # 파일 다운로드 여부 isCrackCode=0 # 인증 코드 자동 인식 여부 isDetailPage=0 # 문서 세부 정보를 excelisDownLoadLink에 저장할지 여부 # 여부 Excel에서 다운로드 링크를 저장하려면 stepWaitTime=5 # 각 다운로드 및 크롤링 세부정보 페이지에 대한 일시 중지 시간
다운로드 및 크롤링 세부정보 페이지를 동시에 열지 않는 것이 좋으며, 일시정지 시간은 3초 이상이어야 합니다.
파이썬 실행-spider.py
크롤러 실행이 끝나면 모든 데이터는 데이터 폴더에 저장되며 프로그램을 다시 실행할 때마다 이전 데이터 폴더가 자동으로 삭제됩니다.
CNKI_download -- data 存放所有爬取数据 -- CAJs 存放所有下载的caj原文 -- xxxxxxx.caj -- xxxxxxx.caj -- Links.txt 所有爬取文献的下载链接 -- ReferenceList.txt 爬取文献简要信息 -- Reference_detail.xls 文献详细信息excel表
프로젝트 실행의 전제는 컴퓨터가 IP를 통해 CNKI에 액세스하고 이를 다운로드할 수 있다는 것입니다(대부분의 학교는 데이터베이스를 구입했습니다). 글쓰기를 마치려고 할 때 여전히 점프 인터페이스가 있고 공용 네트워크 액세스가 가능하다는 것을 알았습니다. 앞으로 추가될 예정입니다.
"원격 호스트에 의해 액세스가 거부되었습니다"라는 메시지가 나타나면 각 세션의 일시 중지 시간을 적절하게 늘릴 수 있습니다.
한 번 실행하신 경우, 다시 실행하기 전에 데이터 폴더의 모든 파일을 닫아야 한다는 점을 기억하세요. 그렇지 않으면 데이터 폴더를 삭제할 수 없어 오류가 보고될 수 있습니다.
정보를 다운로드하지 않고 크롤링만 할 경우, 약 1,000개의 문서를 실행한 후 (올바르게 입력했더라도) 인증코드를 반복적으로 입력할 수 있습니다. 이유가 무엇인지는 아직 알려지지 않았습니다
고급 검색을 위해 구현되지 않은 기타 기능을 완료합니다.
마지막 오류부터 다시 크롤링하려면 지정된 크롤링 시작 페이지 정보를 추가하세요.
IP를 통해 로그인할 수 없는 사용자가 계속 이 크롤러를 사용할 수 있도록 CNKI 인터페이스에 공용 네트워크 점프를 추가하세요.
공용 네트워크 점프를 기반으로 프록시 IP 액세스를 구현하는 프록시 풀을 생성하여 CNKI에 의해 차단되는 IP 주소 수와 인증 코드 입력 수를 줄입니다.
프로그램 구현 및 분석 프로세스 기록을 작성합니다.