在抓取中打印重复的电子邮件和电话号码 python

Print Duplicate email and Telephone number in Scraping python

我正面临问题,它打印两次电子邮件和 phone 号码,同时打印电话并发送给它 trim 我尝试但失败了。 请帮我解决这个问题。

import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
suit=[]
url ="https://www.allenovery.com/en-gb/global/people/Shruti-Ajitsaria"

r= requests.get(url)

soup = BeautifulSoup(r.content, 'html.parser')
#time.sleep(1)
content = soup.find_all('div', class_ = 'hyperlinks')
#print(content)
for property in content:
  link = property.find('a', {'class': 'tel'})['href']
  email = property.find_next('a', {'class': 'mail'})['href']  
  print(link,email)

在您的代码中使用它来查看您的循环将要执行多少次 运行 print(len(content))

如果你这样做,你会发现循环的长度(等于 content 变量的长度)是 2,当你把 print(link,email)在你的循环中,它将 运行 两次,你会看到两次打印结果......换句话说,你正在打印结果 2 次。要解决这个问题,请删除 print(link,email) 的缩进,将其放在循环之外,这样它就会被修复。

重复的电子邮件和电话号码,因为它们存在不止一次。

import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
suit=[]
url ="https://www.allenovery.com/en-gb/global/people/Shruti-Ajitsaria"

r= requests.get(url)

soup = BeautifulSoup(r.content, 'html.parser')
#time.sleep(1)

tel = soup.select('div.hyperlinks > ul > li > a')[0].get('href')
email= soup.select('div.hyperlinks > ul > li > a')[1].get('href')
print(tel,email)

输出:

tel:+44 20 3088 1831 mailto:shruti.ajitsaria@allenovery.com