2012-05-25 3 views
0

http://elwatan.com/pdf/telecharger.php?dir=JOURNAL&file=20120524.pdf에있는 PDF 파일을 다운로드하려고하는데이 PDF 파일을 다운로드하기 전에 로그인해야합니다. 로그인 할 수 있었지만 서버가 홈 페이지 http://elwatan.com으로 리디렉션되었습니다. 다시 pdf의 URL을 가져 오려고하면 로그인하지 않은 것 같습니다. 다운로드 할 수 없습니다. 나는 쿠키를 사용해야한다고 생각해. 그렇지?python urllib을 사용하여 보호 된 파일 다운로드

예, 이전에 사용 해본 적이 없기 때문에 설명해주세요. ?

감사의 :

+0

어쩌면 ??? http://stackoverflow.com/questions/8734876/urllib2-with-cookies –

+0

또는 http://stackoverflow.com/questions/7162850/pass-session-cookies-in-http-header-with-python- urllib2 –

답변

2

mechanize 라이브러리는이 같은 상황에 매우 유용합니다. 양식 (예 : 로그인 양식) 작성 및 쿠키와 같은 상태 유지를 포함하는 브라우저를 시뮬레이트합니다. 그것을 사용하여 사이트에 로그인 한 다음 pdf 파일을 탐색 할 수 있습니다.

br = mechanize.Browser() 
br.open(login_url) 
#code to log in with br 
data = br.open(pdf_url).get_data() 

그런 다음 PDF 파일로 데이터를 구문 분석해야 할 것입니다 그리고 당신은 당신이 그것으로 할 필요가 무엇이든 할 수 있습니다 : 당신은 다음과 같은 코드를 사용합니다.

+0

오케이,하지만 데이터 변수에 pdf가 포함되어 있습니다. 맞습니까? – Sizixe

+0

필자는 전에 pdf 용으로 mechanize를 사용하지 않았기 때문에 확실하지는 않지만 데이터는 pdf 여야합니다. 당신은 아마도 다른 어떤 pdf 라이브러리를 사용해서 실제로 유용한 것을 얻을 필요가있을 것입니다. – murgatroid99

+0

감사합니다. 시도해 보겠습니다. – Sizixe

1

해당 웹 응용 프로그램을 사용할 때 "세션"이 생성됩니다. 세션 세부 정보는 쿠키 내에 클라이언트에 저장됩니다. 클라이언트가 각 HTTP 요청과 함께 쿠키 내용을 보냅니다. 이렇게하면 웹 응용 프로그램은 HTTP 요청이 동일한 세션에 해당 함을 알게됩니다. 처음에는 그 세션에서 알 수없는 사용자 일뿐입니다. 로그인 한 후 웹 응용 프로그램은 해당 세션 내의 요청이 권한이 부여 된 사용자로부터 온 것임을 알고 있습니다. 에서 문서를 기록, 브라우저를 통해에서

  • 로그, 초기 요청부터 파이썬에서 모든 것을 (할 파이썬
  • 를 사용하여 후속 요청에 쿠키와 가짜 브라우저를 제작 :

    당신은 두 가지 옵션이 있습니다 검색)

코드를 웹 응용 프로그램의 세부 사항으로 조정해야하기 때문에 둘 다 상당한 작업량 (특히 사용자가 처음 사용하는 경우) 일 수 있습니다. 기계화와 같은 라이브러리 (다른 사람들이 이미 언급했듯이)는 약간의 작업을 줄일 수 있습니다.

관련 문제