2016년 5월 4일 수요일

[Python]Google Scholar 에서 인용수를 얻는 방법

/*

논문의 인용수를 마땅히 받아 올 곳이 없음...
python으로 간단하게 인용수 수집 구현

argv[1] = 논문 제목

문제 : 구글 자체적으로 시간당 트래픽 40개가 넘어가면 로봇으로 감지.
        IP가 막혀서 해당 사이트 검색 불가 -> 로봇 검증 해지해야 함.

해결 방안 : 1. 트래픽 구매 ( 한달에 5만건 : 250 불)  
               2. 제한 된 트래픽에서 계속 실행 (한달 full로 요청 하면 28,800건 가능)
             
결과 : 문제시 자삭
*/

import pycurl
import cStringIO
import sys


arg1 = sys.argv[1]
print arg1
buf = cStringIO.StringIO()
c = pycurl.Curl()
c.setopt(c.URL, 'https://scholar.google.co.kr/scholar?q='+arg1)
c.setopt(c.WRITEFUNCTION, buf.write)
c.perform()

string = buf.getvalue()
index = string.find("\"gs_fl\">") #find id = gs_fl div tag
string2 = string[index+8:]

index2 = string2.find(">") # find end of a tag
string3 =  string2[index2+1:]

index3 = string3.find(" ") # find void

print string3[0:index3][0:-1]


buf.close()


댓글 없음:

댓글 쓰기