一尘不染

从python中的标签名称中收集数据

selenium

嗨,我正在尝试从网站上抓取用户数据。我需要标签名称本身中可用的用户ID。我正在尝试在 div 标签中使用pythonselenium和漂亮的汤刮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')&amp;&amp;(new Element(this)).getElement('.avatar').getStyle('border-radius')=='100%'?-10:0);">

我试图在div标签中使用pythonselenium和漂亮的汤刮UID。我浏览了所有文档和几个网页,但找不到解决方案。如果有人能告诉我这种事情是否可能,我将非常感激。


阅读 274

收藏
2020-06-26

共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与特定正则表达式匹配属性值。它包含一个保存组
(\w+),可帮助我们提取UID值。

2020-06-26