import requests, re
from bs4 import BeautifulSoup
urls = [
'https://www.hoteles-santos.es/en/hotels/mallorca/nixe-palace/contact/',
'https://www.hoteles-santos.es/en/hotels/mallorca/nixe-palace/',
'https://www.hotelcort.com/en/contact/',
'https://www.hotelcort.com/en/',
'https://www.canaves.com/en/contact/',
'https://www.canaves.com/en/hotels/mallorca/',
'https://www.fincallorca.com/contact',
'https://www.fincallorca.com/',
'https://www.helencummins.com/contact/',
'https://www.helencummins.com/abc-mallorca/',
'https://www.mallorcafarmhouses.com/contact-us/',
'https://www.mallorcafarmhouses.com/about-us/',
'https://www.mallorcasite.com/en/contact',
'https://www.mallorcasite.com/en/about-us',
'https://www.mallorcagold.com/contact/',
'https://www.mallorcagold.com/about-us/',
'https://www.bestardboots.com/contact/',
'https://www.bestardboots.com/about-bestard/',
]
headers={'User-Agent':'Mozilla/5.0'}
for u in urls:
print('\nURL',u)
try:
r=requests.get(u,headers=headers,timeout=15,verify=False)
print(r.status_code,r.url,r.text[:70].replace('\n',' '))
soup=BeautifulSoup(r.text,'html.parser')
text=soup.get_text('\n',strip=True)
emails=sorted(set(re.findall(r'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}', text+r.text)))
phones=sorted(set(re.findall(r'(?:\+34|0034)?\s?(?:\d[\s.-]?){8,12}', text)))[:8]
print('title', soup.title.string.strip() if soup.title and soup.title.string else '')
print('emails', emails[:6], 'phones', phones)
for kw in ['Mallorca','Majorca','Palma','office','hotel','blog','news','magazine','contact','address']:
idx=text.lower().find(kw.lower())
if idx!=-1: print(kw, text[max(0,idx-80):idx+250].replace('\n',' | '))
except Exception as e: print('ERR',e)