2016-04-28 72 views
0

所以我想在與該號碼相關的信息旁邊打印一個數字。問題是有時候有4個項目,有時候是5個項目,這意味着我需要某種計數器。我想觸發一個事件來打印新的號碼,當我達到特定的分區。這裏是代碼:達到特定Div時觸發事件

<div class="result"> 
    <span class="number"><a href="####">#### 
    <span class="d" id="number"> 
    </span> 
    </span></a> 
<div class="rm"> 
    <span class="detail"><span class="cloud" title="system"></span> information</span> 
    <span class="detail"><span class="marker" title="location"></span> information</span> 
    <br/> 
    <span class="detail"><span class="cog" title="public"></span> information</span> 
    <br/> 
    <span class="detail"><span class="lock" title="name"></span> information</span> 
    <br/> 
</div> 
    <span class="default">word</span> 
</div> 
<div class="result"> 
    <span class="number"><a href="####">#### 
    <span class="d" id="number"> 
    </span> 
    </span></a> 
<div class="rm"> 
    <span class="detail"><span class="cloud" title="system"></span> information</span> 
    <span class="detail"><span class="marker" title="location"></span> information</span> 
    <br/> 
    <span class="detail"><span class="cog" title="public"></span> information</span> 
    <br/> 
    <span class="detail"><span class="lock" title="name"></span> information</span> 
    <br/> 
</div> 
    <span class="default">word</span> 
</div> 

本質上,我想關聯從跨班級號碼的數字與每個細節跨度的所有信息。我把這個放在excel表格中;這個數字在列A和列B中的信息。BeautifulSoup有沒有一種方法可以說:「當你到達'div class = result'時,把這個數字放在A列中的一個新行上,並把與它相關的信息放入在列B旁邊的列表。我會張貼代碼,但我不知道如何做到這一點,並尋找一些方向。謝謝!

+0

你怎麼普莉希拉ng從頁面的div?用'find_all(「div」,{「class」:「result」)'或類似的東西? – bmcculley

+0

'div = soup.findAll('div',attrs = {「class」:「result」})'是的,這是拉它的代碼。 – Wes

回答

-1

這將是很容易說,如果你會顯示!確切的結果,或者你想要的結果的格式,否則什麼@wes提到會suffice.Thanks

0

我認爲這樣做最簡單的方法則是:

# grab all the result elements 
divs = soup.findAll('div', attrs={"class":"result"}) 
# loop through the result elements 
for div in divs: 
    number = div.find('span', {'class': 'number'}) 
    # do the rest of your code here 
+0

正確。所以這將打印我想要的div內的所有信息。我打印到列B中。現在我的問題是,我想要將該數字也放在該div內,並將其打印在所有相關信息旁邊的A列中。 – Wes

+0

我不確定我是否理解。在創建csv時,在移至列B之前,您不會完整創建列A.它一次構建一行。因此,如果您有列A的編號,請將所需的數據放入B列,然後繼續下一行,在此情況下,執行for循環的下一次迭代。 – bmcculley

+0

csv?我使用xlsxwriter將其直接寫入Excel表格。我沒有創建一個csv文件。 – Wes