python - 从 selenium get_attribute('href') 中删除 'mailto:'
问题描述
我正在抓取一个网站,并且能够下拉电子邮件 href 属性,但所有电子邮件都包含 mailto: 标签。例如,我希望电子邮件 mailto:john@gmail.com 只是 john@gmail.com。我搜索了堆栈并找到了几个正则表达式解决方案,但无法实现它们。在 Python 3.6 中,导入重新保持灰色。现在看来这必须是一个默认库,但它不起作用。我也尝试过更改 XPATH,但不清楚如何渲染 XPATH,因为 Selenium 显然不允许您这样做。
这是我的代码:
try:
element = "//div[@class='business-buttons']/a[1]"
email_el = driver.find_element(By.XPATH, element)
email = email_el.get_attribute("href")
except NoSuchElementException:
print("Handled NoSuchElementException no email")
pass
解决方案
您可以尝试方法.replace():
email.replace("mailto:", "")
如果您有一个已抓取的电子邮件列表,您可以.replace()
循环使用:
email_list = ['mailto:john@gmail.com','mailto:john2@gmail.com','mailto:john3@gmail.com']
for item in email_list:
item = item.replace("mailto:", "")
print(item)
输出:
john@gmail.com
john2@gmail.com
john3@gmail.com
推荐阅读
- python - 为什么循环后列表会改变
- android - 如何在 FLUTTER 中的图像滑块/轮播上使图像显示全视图以及如何在图像滑块上制作表格?
- makefile - 如何阻止 Makefile 扩展我的 shell 输出?
- ios - ios swift app开发:UIScrollview不滚动内容并正常工作
- symfony - 引用相关实体的嵌套属性时默认 API 过滤器失败
- ios - iOS图像元数据如何将十进制值作为分数字符串?
- java - Maven 和 java:在测试目录中缺少生成的服务代码
- angular - 将多个 ngrx 商店选择组合成单个调用 Angular 7
- mysql - 如何根据列中的子字符串进行聚合?
- python - FileNotFoundError: No such file or directory (for Dogs and Cats code)