2016-12-12 3 views
0

をこすりするのpythonを持つURLを反復 - 例外TypeError:文字列中に変換すべての引数の書式ありません私は、ターゲットURLにテーブルをこすりすることができるよ、まだ私は私が手に残りのページを反復処理しようとすると、同様のテーブルに

私はvar(n)をmaxに設定しているので、17ページあります。連続するページに到達するためにforループを使用しました。このコードは、反復コンポーネントがコメントアウトされている場合に機能します。コードをより効率的にするためのループを定義できますか?

response = urlopen(base_url + "all/" %i) 

はそれがあるべき:のための最初のであれば、これを使用する理由

response = urlopen(base_url + "all/" + str(i)) 

はまた、私が得るdidntは

from urllib2 import urlopen 
import requests 
from bs4 import BeautifulSoup 

n = 17 
base_url = 'http://www.lowfloat.com/' 
for i in range(1, n+1): 
    if (i == 1): 
     response = urlopen(base_url) 
    response = urlopen(base_url + "all/" %i) 
html = response 
print (html.response) 
#html = requests.get(base_url) 
soup = BeautifulSoup(html.content, "html.parser") 
table = soup.find('table', attrs={'class': 'stocks'}) 

def target_row(tag): 
    is_row = len(tag.findAll('td')) > 5 
    row_name = tag.name == 'tr' 
    return is_row and row_name 
rows = table.findAll(target_row) 
rows = rows[1:] 

for row in rows: 
    cells = row.findAll('td') 
    ticker = cells[0].get_text() 
    print "ticker " + ticker 

答えて

1

あなたは、変数を渡すために%を使用する必要がいけません。 ..

+0

%to + TypeError: 'str'と 'int'オブジェクトを連結できません –

+0

... 'if'はデータを取り込むことです最初のページ。 –

+1

str(i)を修正してください...うまくいくはずです... –

関連する問題