2017-03-06 11 views
0

私のコンピュータの.txtファイルにウェブサイトのHTMLコードを保存しました。しかし、スクリプトは最初のURLを出力し、全てではなく、他のリンクHTMLコードからURLを正しく抽出するにはどうすればよいですか?

def get_net_target(page): 
    start_link=page.find("href=") 
    start_quote=page.find('"',start_link) 
    end_quote=page.find('"',start_quote+1) 
    url=page[start_quote+1:end_quote] 
    return url 
my_file = open("test12.txt") 
page = my_file.read() 
print(get_net_target(page)) 

:私は、次のコードを使用して、このテキストファイルからのすべてのURLを抽出したいと思います。どうしてこれなの?

答えて

2

すべてのURLを処理するには、ループを実装する必要があります。

print(get_net_target(page))のみpageで見つかった最初のURLを出力しますので、あなたが何度も何度も、この関数を呼び出す必要があります、これ以上のURLまでサブpage[end_quote+1:]pageを交換するたびに発見されました。

あなたが始めるのは、next_indexは、ループには、以下のURLを取得します、最後のエンディングのURL位置を保存します:あなたが唯一の"の内部に封入されているリンクを取得するため

next_index = 0 # the next page position from which the URL search starts 

def get_net_target(page): 
    global next_index 

    start_link=page.find("href=") 
    if start_link == -1: # no more URL 
    return "" 
    start_quote=page.find('"',start_link) 
    end_quote=page.find('"',start_quote+1) 
    next_index=end_quote 
    url=page[start_quote+1:end_quote] 
    end_quote=5 
    return url 


my_file = open("test12.txt") 
page = my_file.read() 

while True: 
    url = get_net_target(page) 
    if url == "": # no more URL 
     break 
    print(url) 
    page = page[next_index:] # continue with the page 

も気をつけて、彼らは'で囲むこともできます。

+0

ありがとうございました!私はPythonを初めて使っています。これを実装する方法の例を教えてください。それは非常に役に立ちます。 – jakeT888

+1

私はあなた自身の開始コードでアルゴリズムを理解するのに役立つサンプルコードで答えを更新しました。 – SegFault

関連する問題