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&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']
我抓取了一个包含多个代码块的 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&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']