2011-01-12 3 views
0

여러 개의 작은 문제.파일 다운로드 스크립트 (urllib python) 및 정규 표현식

1) file.name에 대한 명령은 무엇입니까? 나는 그것이 존재한다는 것을 안다. 내가 file.info()를 할 때 filename = "blah blah"아래에 나타난다. 그래서 나는 file.info() [index]를 시도했지만, 인터프리터는 그것에 대해 헷갈리는 적합성을 던진다. 나는 그것이 객체의 유형 인 HTTPResponse에 대해 문서의 어느 곳에서도 찾을 수 없다.

가 나는 invision 전원 보드에 로그인 정보를 메신저 #for

#Download file 
print("downloading") 
file = urllib.request.urlopen(URL + "/index.php?app=downloads&module=display&section=download&do=confirm_download&id=881")) 


#Write file 
out = open(SAVE_FOLDER + file.name , "wb") ###file.name DOESNTWORK 
out.write(file) 
out.close() 

3)가 있습니다. 사이트에 로그인하는 방법을 알아 보려면 wire shark를 사용하여 사이트로 보내는 http 요청을 발견했습니다. 그것은 referer = blah blah blah라고하는 라인 기반 텍스트 데이터 부분을 가졌습니다. 그래서 나는 그 데이터를 서버에 보내야만 로그인 할 수 있다는 것을 알았지 만, 작동하지 않아 일부를봤을 때 우연히 사용자 이름과 암호를 보내야한다는 것을 알게되었습니다. 비록 referer URL 일은 그것에있는 사용자 이름과 암호를 가지고있었습니다.

그래서 ... 내 질문. 나는 데이터가 내가 Wireshark와의 POST 메시지 만에 리퍼러를 가지고 있기 때문에처럼 사고에를 찾는 대신

values = "username" : USERNAME, 
      "password" : PASSWORD,   
      "referer" : "http%3A%2F%2FsomeURL.com%2Findex.php%3F&username=" + USERNAME + "&password=" + PASSWORD + "&rememberMe=1" 

을해야했다 것을 발견했을 것이다 방법.

그게 전부입니다. 다른 질문에서이 부분이 중복 될 수 있으므로 유감 스럽습니다. 사전에 감사

편집 : 알아낼 문제 2.

+0

문제는 URL과 URL 이름이 관련이 없다는 것입니다. URL은 /index.php?app=downloads&module=display§ion=download&do=confirm_download&id=881이고 파일 이름은 6.71_beta13입니다 .w3x – Enders

+0

아, 당신은 referer가 필요 없다고 맞았습니다. 나는 지금해야 할 일을 알고있다. 고마워. 파일 이름을 얻으려면 file.info()에 몇 가지 re를 사용했습니다. – Enders

답변

0
  1. URL의 이름을 가지고 있지 않습니다. 가장 가까운 URL은 file.geturl()을 사용하여 얻을 수있는 URL 자체입니다.

  2. 로그인 양식과 입력란을 보면 알 수 있습니다. 리퍼러는 여기에서 무관 할 가능성이 큽니다.