2016-09-16 9 views
0

私はウェブサイトのフィルタに値を提供しています。解析する異なるHTMLを生成するためです。データを区別するために、各ページソースを別のPythonオブジェクトに保存したいと思います。私は追加する空のオブジェクトのリストを持っています。ページソースを解析し、各ページソースを自身のリストにある独自のPythonオブジェクトに保存する必要があります。このようにネストされたforループと空のオブジェクトへの追加

特定のHTMLソースのtd要素をリストの特定の空のオブジェクトに追加する方法があります。私は各反復で、それ自体がリストにある別のオブジェクトにhtmlソースを格納する必要があります。

私は私の例を簡略化します:

years = ['2015', '2016] 
weeks = ['1', '2'] 
store = [[], [], [], []] 

は、これは私がキャプチャするために必要なHTMLソースの4セットを提供します:

for y in years: 
    for w in weeks: 

#Iがにwebdriver.selectで、yとwを使用します。ウェブページフィルタの値を提供する BSを使用して各繰り返しのページソースをコピーします:

html = browser.page_source 

soup = BeautifulSoup(html, "lxml") 

そしてTD要素を抽出するために、特定のページのソースを反復:

counter = 0  
for el in soup.find_all('td'): 

店舗リストの指標を提供するために、TD要素を追加するために、空のオブジェクトを分離する

for el in soup.find_all('td'): 
     store[counter].append(el.get_text()) 
counter = counter + 1 

ストリップにHTMLの要素を文字を追加し、店舗リストの次のオブジェクトに移動するためにカウンタに加算します。

しかし結果として、すべてのtd要素は、独自のオブジェクトを持つ各htmlソースではなく、リストの最初のオブジェクトに追加されます。私は何が欠けていますか?

マップ機能を使用する方がいいですか?

答えて

0

あなたの声明

counter=counter+1 

は、forループ内ではありません。

ループの周りでカウンタが増分されるように、前の行と同じレベルでインデントする必要があります

関連する問題