Select HTML 标签内的多个值 BeautifulSoup

Select multiple values inside HTML tags with BeautifulSoup

我抓取了一个包含多个代码块的 HTML 页面,如下所示:

<div data-pnref="all" class="clearfix _5qo4">
<a data-hovercard="/ajax/hovercard/user.php?id=671948073&
amp;extragetparams=%7B%22hc_location%22%3A%22friends_tab%22%7D" ... />

我想检索 data-hovercard 的值,尤其是 URL 中的 ID:“671948073”。

我在 BeautifulSoup 模块中尝试了 findAll 和 select,但到目前为止都没有成功。

找到 <div> 然后找到 <a>:

html = '<div data-pnref="all" class="clearfix _5qo4"><a data-hovercard="/ajax/hovercard/user.php?id=671948073&amp;extragetparams=%7B%22hc_location%22%3A%22friends_tab%22%7D"/></div>'
soup = BeautifulSoup(html)

div = soup.find('div')
anchor = div.find('a')

data_hovercard = anchor['data-hovercard']

print data_hovercard
#/ajax/hovercard/user.php?id=671948073&extragetparams=%7B%22hc_location%22%3A%22friends_tab%22%7D

要获取 id 的值,请使用 urlparse:

import urlparse

parsed = urlparse.urlparse(data_hovercard)
parsed_dict = urlparse.parse_qs(parsed.query)
hovercard_id = parsed_dict['id']

print hovercard_id
#['671948073']