2016-03-07 53 views
0

確定的數,所以我陷入瞭如何解決此問題在這裏。 這只是一個遊戲的在線人的私人計數器。LXML Python腳本,我怎麼能刪除重複的ID

經過一番研究,我設法到這個代碼,我平添了幾分上的搜索,以獲取所有圖像的數量與on.png ......而且它的實際工作!

from lxml import etree 
import requests 

def get_img_cnt(url): 
    response = requests.get(url) 
    parser = etree.HTMLParser() 
    root = etree.fromstring(response.content, parser=parser) 

    return int(root.xpath('count(//img[@src="pics/on.png"])')) 

現在我很沮喪的是,在公會長在線的情況下,「on.png」會重複2次。 任何人都可以想辦法解決它嗎?這是HTML

<tr><td class='tabellatitolo a_dx' style=' padding:10px;' >Master 
<td class='tabelladati' style=' padding:10px;' ><img align=absmiddle src='pics/on.png'> 
<a href='?f=pg&id=55110'>Modernist</a> 

<tr><td class='tabellatitolo a_dx' style=' padding:10px;' >Membri<p>(5) 
<td class='tabelladati' style=' padding:10px;' >**<img align=absmiddle  src='pics/on.png'> 
<a href='?f=pg&id=55110'>**Modernist**</a>** - <br><img align=absmiddle src='pics/off.png'> 
<a href='?f=pg&id=232720'>Human Slayer</a> - <i>Ti stimo!</i><br> 
<img align=absmiddle src='pics/off.png'> <a href='?f=pg&id=68194'>Juggernaut</a><br> 
<img align=absmiddle src='pics/off.png'> <a href='?f=pg&id=67121'>XeDiOr ThE KoOl</a><br> 
<img align=absmiddle src='pics/on.png'> <a href='?f=pg&id=142638'>Lisbet Irmgard</a><br> 

我想也許使用的上下文位置上或在「Membri」(成員)可能利用的一部分?

感謝任何暗示將appriciated :)

+0

是的,我想看看使用「Membri」爲出發點,然後從那裏。它看起來像你提供的HTML是不完整的,所以很難說如何與你的結構完全一樣。 –

回答

0

我要去給一個更加殘酷的,但可能是簡單的答案:

import re 
import requests 

def get_img_cnt(url): 
    response = requests.get(url) 

    # just take the bit after the 'Membri' section 
    member_content = response.content.split('>Membri<')[1] 

    # count the number of times you see the image 
    return len(re.findall('pics/on.png', member_content)) 

它將如何工作將依賴於HTML的其餘部分(你沒有提供)。在開始進行html解析之前,我會去尋找字符串(就像這樣)。如果有效,這是一個更簡單,更快速的解決方案。

+0

有趣,雖然它似乎沒有找到列表 member_content = response.content.split(「> Membri <」)[1] IndexError:列表索引超出範圍 這是我期待的一個頁面在 http://www.uodreams.it/?f=gilda&id=7005 – UGC

+0

我出於某種原因看到英文頁面。我想你可以使用'resp.text.split(「> MEMB」)[1]'應該工作無論是在英語或意大利語。 –

+0

儘管它給出了這個錯誤,但我理解了這個概念,所以我需要做的就是吐出XML直到找到「成員」,我會找到一個辦法!由於 '回溯(最近通話最後一個): 文件 「2test.py」,第15行,在 打印 「剛:」 get_img_cnt(URL) 文件 「2test.py」,8號線,在get_img_cnt member_content = response.content.split( '> MEMB')[1] IndexError:列表索引超出range'的 – UGC