您好我正在尝试从网站上抓取用户数据。我需要标签名称中可用的用户ID。我正在尝试使用python selenium和 div 标签中的美丽汤来刮取UID。
示例:
<"div id="UID_**60CE07D6DF5C02A987ED7B076F4154F3**-SRC_328619641" class="memberOverlayLink" onmouseover="ta.trackEventOnPage('Reviews','show_reviewer_info_window','user_name_photo'); ta.call('ta.overlays.Factory.memberOverlayWOffset', event, this, 's3 dg rgba_gry update2012', 0, (new Element(this)).getElement('.avatar')&&(new Element(this)).getElement('.avatar').getStyle('border-radius')=='100%'?-10:0);">
我正试图在div标签中使用python selenium和美丽的汤来刮掉UID。我查看了所有文档和几个网页,但我无法找到解决方案。如果有人能告诉我,如果有可能这样的事情,我将非常感激。
答案 0 :(得分:1)
假设id
属性值始终采用UID_
格式,后跟一个或多个字母数字字符,后跟-SRC_
后跟一个或多个数字:
import re
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
pattern = re.compile(r"UID_(\w+)\-SRC_\d+")
id = soup.find("div", id=pattern)["id"]
uid = pattern.match(id).group(1)
print(uid)
我们正在使用BeautifulSoup
并搜索id
attribute value to match a specific regular expression。它包含saving group (\w+)
,可帮助我们提取UID值。
答案 1 :(得分:0)
您可以使用 .get 方法并轻松抓取标签名称,
您的问题;
soup.get('id')
当然,如果存在许多 id 标签,则需要先使用 find 或 find_all 方法使用更具体的标签,然后再使用 .get