2017-01-22 1 views
0

恐らく恐ろしい質問のために申し訳ありません。私は一度にPythonでURLの範囲からテキストをダウンロードしようとしています。彼らは非常に単純な構造に従っています:PythonのURLの範囲からデータ(テキスト)をダウンロードしようとしています

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

というように、

へ01099.までのテキストを取得した後、私はNLTKツールキットでそれを分析する必要があります。私はWindows上でwgetを使用しようとしましたが、コマンドラインでは動作しませんでした。この範囲から一度にデータをダウンロードするURL用のglobモジュールに似た方法があるのだろうかと思います。

(範囲内のいくつかの空白のURLもあります。)あなたの助けを

おかげで多くのことを。

+0

テキスト応答が返されるか、テキストファイルのダウンロードがトリガーされますか? – roganjosh

答えて

1

あなたはRequests module

例を使用することができます(あなたがURLの構造を知っていることを見て)文字列操作を使用して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

"リクエスト"はあなたの人生を非常に苦痛の少ないものにします。これは、強力で軽量なWebクライアントが必要とするすべてのものです – 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. 
関連する問題