从网页获取<div>的特定部分

时间:2017-05-26 00:39:10

标签: python html web-scraping aiohttp

我目前正在使用aiohttp和lxml来抓取网页并返回值。到目前为止,我有

def get_sr(page, tree): 
    sr = tree.xpath(".//div[@class='competitive-rank']/div/text()")[0]
    return sr 
def get_icon_url(page, tree):
    url = tree.xpath('.//img[@class="player-portrait"]/@src')[0]
    return url
def get_sr_icon_url(page, tree):
    url = tree.xpath('.//div[@class="competitive-rank"]/img/@src')[0]
    return url
def get_level(page, tree): 
    level = tree.xpath('.//div[@class="header-avatar"]/text()')[0]
    return level

前3个函数完美运行,但最终函数无法正确获取我要查找的文本。这样:

<div class="header-avatar">
                        <img src="https://blzgdapipro-a.akamaihd.net/game/unlocks/0x0250000000001150.png" width="80" height="80">
                        <span>369</span>
                    </div>

我正在尝试从中获取数字的代码块。目前,这个数字是369,但它不断变化。我已通过打印语句确认页面和树是正确的,因此它与实际的get_level方法本身存在问题。

帮助?确定问题需要哪些其他代码?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

试试这个:

level = tree.xpath('.//div[@class="header-avatar"]/span/text()')[0]