2013-10-06 2 views
0

웹 페이지에서 쿼리를 제출합니다. 쿼리가 완료되기까지 몇 초가 걸립니다. 그것이 완료되었을 때에 만 나는 정보를 얻고 자하는 HTML 테이블을 보여줍니다. 이 쿼리를로드하는 데 최대 4 초가 걸린다고 가정 해 보겠습니다. 데이터가로드되는 즉시 데이터를 가져 오는 것을 선호하지만 4 초 후에 테이블에서 데이터를 가져 오는 것이 좋습니다.Python 3.X Extract 소스 코드 페이지가 완료되면 로딩

내 문제는 내 urlread 요청을 할 때 페이지가 아직로드되지 않았습니다. 페이지 로딩을 시도한 다음 절전 모드 명령을 내 보낸 다음 다시로드했지만 시도하지 않았습니다.

내 코드

import urllib.request 
import time 

uf = urllib.request.urlopen(urlname) 
time.sleep(3) 
uf.decode('UTF-8') 
text = uf.read() 
print (text) 

내가보고하고 웹 페이지입니다 http://bookscouter.com/prices.php?isbn=9781111835811

(흥미로운 교과서 하하를 무시 주시기) 그리고 나는 라즈베리 파이

에 파이썬 3.X를 사용하고
+0

누구에게도이 질문에 대한 답변을 줄이려면 질문을 개선 할 수있는 방법을 배우고 싶습니다. 이것은 분명히 숙제 문제가 아니며 나는 정말로 엉망입니다. 나는 가능한 한 최선의 상황을 설명하려고 노력했다. 대답이 쉬운 것 같고 내가 알아야 할 것이 있다면, 미안하다. 나는 아직도 배우고있다. – Shaun314

답변

4

원하는 가격이 검색하는 페이지에 없으므로 기다릴 필요가 없습니다. 대신 가격은 해당 페이지에로드 된 후 검색됩니다. urllib 모듈은 브라우저가 아니므로 해당 스크립트가 실행되지 않습니다. AJAX 요청에 대한 URL이 무엇인지 알아 내야합니다 (소스 코드를 간략히 살펴보면 큰 힌트를 얻을 수 있습니다). 아마도 JSON 형식 일 것이므로 파이썬의 json 모듈을 사용하여 파싱 할 수 있습니다.

+0

Kindall, 매우 빠른 답장을 보내 주셔서 감사합니다! 난 소스 코드를 꽤 찾고 아직도 아약스 자체를 호출을 찾을 수 없습니다. 나는 js 함수 "fetch_results_cb"를 발견했다. 그러나 어디에서나 호출되는 것을 결코 보지 못했고 호출 된 것을 결코 보지 못했기 때문에이 특별한 경우에 검색 ID로 무엇을 입력해야할지 모르겠다. 내가 놓친 걸 봤니? – Shaun314

+0

http://bookscouter.com/ajax_prices.php?type=PREFERRED&isbn=1111835810&search_id=mu9trjyA7AfUs가 작동하며 HTML을 반환합니다. 'search_id'는 어떤 종류의 세션 ID처럼 보입니다. 아마도 가장 좋은 HTML 페이지를 먼저 가져 와서 거기에서 긁어내는 것이 가장 좋습니다 (ID를 만들거나 나가는 일은별로 없었습니다). – kindall