2014-10-16 2 views
0

사용자의 최근 활동 데이터 (즉, 사용자의 최근 제출 시간)를 추출하려고합니다. 이는 내 대학 프로젝트 용입니다. 나는 임의의 사용자 페이지를 사용하여 파이썬에서 BeautifulSoup로 그것을 시도,
Codechef Userid에서 최근 활동 데이터 추출

코드 :

import urllib 
from bs4 import BeautifulSoup 
page = urllib2.urlopen('http://www.codechef.com/users/peeyushy95') 
page = page.read() 
soup = BeautifulSoup(page) 
soup.prettify() 
f1=open('./testfile.txt', 'w+') 
f1.write(soup.get_text().encode('utf-8')) 

I 페이지의 모든 텍스트 FOM을 얻고 그러나 '최근 활동'에만 제목이 기록된다 테이블 항목없이. 사용자가 최근에 제출 한 날짜와 시간을 추출하도록 도와 줄 수 있습니까?

+2

'Recent Activity'테이블이 자바 스크립트에서로드되었습니다. 데이터를 긁기 위해서는 [dryscape] (https://github.com/niklasb/dryscrape)와 같은 라이브러리가 필요합니다. – avi

답변

1

사용 된 Selenium Web Scrapper를 사용하여 웹 페이지를 연 다음 미리 정의 된 시간 (예 : 5 초) 동안 대기 한 다음 페이지를 스크랩했습니다. 셀렌 코드의 주요 부분을 게시하고 있습니다.

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from BeautifulSoup import BeautifulSoup 
import time 
browser = webdriver.Firefox() 
baseURL="http://www.codechef.com/users/peeyushy95" 
browser.get(baseURL) 
time.sleep(5) 
soup=BeautifulSoup(browser.page_source) 
L=str(soup) 
f_out=open("/home/adi/experi/data_up.txt","w") 
f_out.write(L) 
f_out.close()