2016-09-24 3 views
0

私の要件は、私が第四のリンク に仮定するで停止しなければならないため で利用できるので、多くのリンクを持っているいくつかのページを読むことですし、私は 保存読んで、その特定のリンクでURLに接続する必要があります再びリスト 内のリンクの内容接続リンクそれほど多くのリンクを持っていると私は考え10回再び4位にあるリンク 繰り返し、このプロセスに接続し、最終的には、リンクの名前は私が使用していますのpython urlibは

を接続し印刷する必要がありこのコード urlllibは一度だけ動作します

import urllib 
from bs4 import * 
url = raw_input('enter url:') 
count = raw_input('enter count:') 
position = raw_input('enter position:') 
count = int(count) 
position = int(position) 
l = list() 
p = 0 

for _ in xrange(0,count): 
    print 'retrieving:' + url 
    html = urllib.urlopen(url).read() 
    s = BeautifulSoup(html) 
    tags = s.findAll('a') 
    for tag in tags: 
     w = tag.get('href') 
     p = p + 1 
     if p == position: 
      url = "'" + w + "'" 
      l.append(tag.contents[0]) 

print l 
+0

このエラー取得: トレースバック(最新の呼び出しの最後): ファイル "C:\ Users \ユーザーimran.a.shaik \ドキュメント\ Pythonが学ぶ\ soup2.py"、13行目、 のhtml = urllibは中を。 urlopen(url).read() ファイル "C:¥Python27¥lib¥urllib.py"、行87、urlopen return opener.open(url) ファイル "C:\ Python27 \ lib \ urllib.py" 、行210、オープン中 return self.open_unknown(fullurl、data) ファイル "C:\ Python27 \ lib \ urllib.py"、行222、open_unknown内 IOErrorを上げる、( 'URLエラー'、 '未知のURLタイプ'、type) IOError:[Errno url error]不明なURLタイプ: "http" – imran

+0

なぜurlに引用符を追加していますか? 'url =" '"+ w +"' "'?ただ 'url = w'を試してみてください – artem

答えて

0

あなたが話している特定のサイトを知らずに、これは単なる推測ですが、あなたが興味を持っているページ内のリンクは、相対的で絶対的ではないかもしれませんか?その場合、forループでurlをリセットすると、http://example.com/link.phpの代わりに/link.phpのような不完全なリンクが設定され、urllibはその処理を知らないでしょう。あなたが興味を持つ可能性があるすべてのリンクが相対的なものであることを期待している場合は、新しいURLを追加する前にベースURLを追加する必要があります。

関連する問題