好的,所以我在这里遇到如何解决这个问题的困难。 这只是一个游戏在线人员的私人柜台。
经过一番研究,我设法开始使用这个代码,我在搜索中添加了一些代码,用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"])'))
现在我感到沮丧的是,#34; on.png"如果Guild Master在线,则重复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>
我可能正在考虑使用上下文位置或者可能会利用上下文&#34; Membri&#34; (成员)?
感谢任何提示都会被评估:)
答案 0 :(得分: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解析之前,我会去搜索字符串(就像这样)。如果它有效,它是一个更简单,更快速的解决方案。