2017-03-04 5 views
0

このpythonコードを使って出力を得る方法を理解できません。美味しいスープを使ってHTMLリンクリストを7回循環させた後の18番目の姓を見つけよう

HTML file < ----ここ

import urllib 
from BeautifulSoup import * 

url = raw_input('Enter URL - ') 
html = urllib.urlopen(url).read() 
soup = BeautifulSoup(html)<----Here we are reading the .html file word by word 

Count_ = raw_input('Enter Count - ') <---------- 
Position_ = raw_input('Enter Position - ')<-----We are asking user to input the values of "Count", and "Position" variables. 

# Retrieve all of the anchor tags 
tags = soup('a') <----Extracting all anchor tags using the Beautiful Soup program. 
final = "" 
curpos = "" 

をクリックして私は、このコードの目的であっても、ロジックを理解していません。

count= int(Count_) + 1 
while count > 0 : 
    pos = 0  
    for tag in tags: 
     if pos == int(Position_) - 1: 
      curpos = tag.get('href', None) 
      break 
     pos = pos + 1 
    final = curpos 
    url = str(curpos) 
    html = urllib.urlopen(url).read() 
    soup = BeautifulSoup(html) 
    tags = soup('a') 
    count = count - 1 
print final 

誰か助けてもらえますか?

答えて

-1

スニペットはかなり簡単だと思いますので、私はあなたにとって重要な部分を強調します。

ユーザー入力は、urlCount_Position_の3つです。

urlからアンカータグをすべて抽出し、希望の位置になるまでループします(Position_ - 1)。

次に、実際のアンカーのhrefリンクを抽出し、curposに保存します。

あなたは再び以前urlを定義して、もう一度countをデクリメントし、countは0

よりも大きくなるまでループはあなたの印刷を終了した後、このループを続行し、それを開き、それを読んで、そのアンカータグを抽出するcurposを割り当てます最後に見つけたアンカータグのhrefリンクである最後のcurposと同じであるfinalを、posに置き換えます。

基本的に、指定された位置にあるアンカータグのhrefに基づいて、スクリプトがより深く深くなります。

関連する問題