BeautifulSoup在标记内的代码片段中找到一个键值

时间:2017-04-23 18:40:26

标签: python beautifulsoup

我的目标是从页面源获取“sitekey”的值。代码片段为here。有问题的页面是this

现在,做

soup = BeautifulSoup(url,'html.parser')
soup.find('div',{"class":"field field--required"})

不起作用,因为有多个具有相同类名的div标签。我该如何解决这个问题?

提前谢谢。

编辑:

def sitekey_search(atc_link):
    response = session.get(atc_link)
    soup = BeautifulSoup(response.content, 'html.parser')

    sitekey = soup.select("div script")[0]
    print(sitekey)
    m = re.match("""\"(\w+)\"""", sitekey)
    if m:
        print(m.groups())

2 个答案:

答案 0 :(得分:1)

您可以使用:

soup.select("div.field.field-required")

它会给你一个包含找到的div的列表。

答案 1 :(得分:0)

soup = BeautifulSoup(a,'lxml')
sitekey = soup.select("div script")[0]
b = sitekey.text
print(re.findall(r'"([^"]*)"', b))

这应该可以完成这项工作,变量 a [第1行]是输入(html), b只是脚本部分,正则表达式打印引号之间的所有内容,在本例中为密钥,如果要从密钥或.strip("'")中删除引号,则可以另外使用replace("'","")