美丽的汤Python点击标记

时间:2018-01-24 09:49:40

标签: python beautifulsoup

<a data-iso-code="inr" data-symbol="₹" class="currency-select-button" 
href="#">₹ - INR </a>

如何点击此标签,如何检查'data-iso-code = =“inr”'??? 我已经尝试过soup.find('a',data-iso-code ='inr'),但它给出了错误: -

'SyntaxError: keyword can't be an expression'

1 个答案:

答案 0 :(得分:1)

记住,美丽的汤不是网络浏览器,而是解析器:因此点击&#39;并不完全相同:它不像Web浏览器那样执行Javascript模型。

那就是说,它可以跟随&#39;如果你制作一个原始的蜘蛛机器人链接(确保如果你这样做,你看看你的目标网站robots.txt文件。

假设您已经拥有类似这样的代码,以获得对“&#39; a&#39;标签

from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
mytag = soup.a # or use soup.findall('a') etc and loop over the results

然后您现在可以查看该标记的属性:

注意,不能执行if 'data-iso-code' in mytag:但您可以这样做:

def has_correct_attr(tag, attr, val):
    has_attr = False
    try:
        if mytag[attr] == val:
            has_attr = True
        else:
            has_attr = False
    except KeyError:
        has_attr = False
    return has_attr

has_correct_attr(mytag, "data-iso-code", "inr")

(代码写在这里,未经过测试,因此请注意拼写错误)