2017-01-22 7 views
0

아마도 어리석은 질문에 대해 사과드립니다. 나는 한 번에 파이썬으로 URL의 범위에서 텍스트를 다운로드하려고 노력하고있다. 그들은 매우 간단한 구조를 따른다 :Python의 URL 범위에서 데이터 (텍스트)를 다운로드하려고 시도합니다.

"http://example.com/01000/01000/01000.htm"; "http://example.com/01000/01001/01001.htm";

등,

에 01099.까지 텍스트를받은 후, 나는 NLTK 툴킷을 분석 할 필요가있다. Windows에서 wget을 사용하려고했지만 명령 행에서 작동하지 않았습니다. URL에 glob 모듈과 비슷한 방식으로이 범위의 데이터를 한꺼번에 다운로드하는 방법이 있는지 궁금합니다.

(또한 범위의 일부 빈 URL이 있습니다.)

도와 주셔서 감사합니다 많이. 당신이 문자열 조작을 사용하여 URL을했으면

+0

텍스트 응답이 반환되거나 텍스트 파일 다운로드가 트리거됩니까? – roganjosh

답변

1

당신이 Requests module

예를 사용할 수있다 (당신이 URL의 구조를 알고보고);

import requests 

base_url = "http://example.com/01000/01001/0" 
for i in range(1000, 1100): 
    target_url = base_url + str(i) + ".htm" 
    r = requests.get(target_url) 

    print(r.text) # python 3 only 
+0

"Requests"는 삶의 고통을 덜 경감시킵니다. 강력하고 가벼운 웹 클라이언트가 있어야하는 모든 것 – Basic

0

시도해 볼 수 있습니다. python3-wget module. 사용 예를 보여줍니다. 당신이 요청 및 BeautifulSoup4 간단한 웹 스크래퍼를 만드는 조사해야합니다 페이지에서 특정 텍스트를 exract해야하는 경우, 모든 파일을 다운로드합니다

#!/usr/bin/python3 
#-*- coding:utf-8 -*- 

import wget 

urls = 'http://example.com/01000/01000/0' 
for x in range(1000, 1099): 
    url = urls + str(x) + '.htm' 
    filename = wget.download(url) 

.

0

도움 주셔서 감사합니다. 결과적으로 내 코드는 다음과 같습니다.

import requests 
base_url = "http://example.com/01000/0" 
for i in range(1000, 1100): 
    target_url = base_url + str(i) + '/' + '0' + str(i) + ('.htm') 
    r = requests.get(target_url) 
    print(target_url) 

    with open(str(i) + ".htm", 'w', encoding="iso-8859-1") as f: 
    f.write(r.text) 

#The encoding is due to language specific text. 
#It downloaded all the files in the given range: http://example.com/01000/01000/01000.htm 
#to /01000/01099/01099.htm.