我们说我有这样的标签:
<div class="user-details"><a href="/users/619/jon-hu">Jon Hu</a>
我想提取用户ID或类似内容的619
。
我可以这样做,结果如下:
question.select('.user-details a')[0]
>>> <a href="/users/619/jon-hu">Jon Hu</a>
如何解压619
?它没有单独的标签,所以我认为我必须使用正则表达式,我不是很擅长。
答案 0 :(得分:1)
您应该首先通过将元素视为字典来提取href
属性值。然后,您可以应用正则表达式来提取用户ID:
a = question.select_one('.user-details a')
href = a["href"]
match = re.search(r"/users/(\d+)", href)
if match:
user_id = match.group(1)
print(user_id)
else:
print("No user ID found in '%s'." % href)
其中(\d+)
是捕获组,可捕获一个或多个连续数字。
另请注意使用.select_one()
方法代替.select()
和[0]
。