Вы можете использовать библиотеку Python csv
для разбора вашего файла за раз и beautifulsoup
для разбора HTML.От вашего вопроса ваш URL будет во втором столбце (то есть row[1]
).При этом вы можете использовать библиотеку requests
для захвата HTML-кода и BeautifulSoup для анализа всех строк.
Затем вам нужно будет использовать регулярное выражение, чтобы попытаться определить адреса электронной почты внутри текста.Простой поиск python email regular expression
должен дать вам любое количество возможных решений.
Далее, для всех найденных писем напишите их в виде строки в выходной CSV-файл:
from bs4 import BeautifulSoup
import requests
import csv
import re
with open('input.csv', newline='') as f_input, open('output.csv', 'w', newline='') as f_output:
csv_input = csv.reader(f_input)
csv_output = csv.writer(f_output)
for row in csv_input:
if row:
company = row[0]
url = row[1]
print(f'Getting "{company}"')
req = requests.get(url)
soup = BeautifulSoup(req.content, 'html.parser')
for text in soup.stripped_strings:
emails = re.findall(r'\b([A-Za-z0-9\.\+_-]+@[A-Za-z0-9\._-]+\.[a-zA-Z]*)\b', text)
if emails:
csv_output.writerow([company, *emails])