【问题标题】:Select multiple values inside HTML tags with BeautifulSoup使用 BeautifulSoup 在 HTML 标记中选择多个值
【发布时间】:2016-01-12 16:01:04
【问题描述】:

我用多个代码块抓取了一个 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,但到目前为止都没有成功。

【问题讨论】:

  • 是的,但是我检索了整个块,然后我无法提取 id

标签: python web-scraping beautifulsoup


【解决方案1】:

找到&lt;div&gt;,然后找到&lt;a&gt;

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']

【讨论】:

    猜你喜欢
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 2019-09-29
    • 2021-12-10
    • 2016-05-29
    • 1970-01-01
    相关资源
    最近更新 更多