Получить все адреса электронной почты с сайта
Мне нужно извлечь все адреса электронной почты с этого сайта: http://www.danskeark.dk/Medlemsindex.aspx Чтобы перейти к адресам, перейдите к букве A,B,C,D... а затем по компании.
Мне также нужно экспортировать найденные адреса, чтобы преуспеть.
Как мне сделать это по-восточному?
- Спасибо за любую помощь - Расмус
2 ответа
Зеркалируйте сайт с помощью wget в новом каталоге
wget -mk --domains danskeark.dk danskeark.dk
grep все почтовые адреса к csv в родительском каталоге в этом каталоге
find . | xargs grep -E -o "\b[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9.-]+\b" > ../out.csv
Вот небольшой сканер, созданный с помощью ahk (Бесплатный язык сценариев с открытым исходным кодом для Windows)
Так что вам нужно скачать это по ссылке выше
Я использовал видимый объект IE, чтобы держать то, что делает, открытым, делает его немного медленным (5-7 минут), но эй, если он вам нужен только один раз...
url := "http://www.danskeark.dk/Medlemsindex.aspx"
wb := ComObjCreate("InternetExplorer.Application")
wb.visible := true
virksomheds_Urls := []
chars := "ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789"
loop, parse, chars
{
index := "?index=" A_LoopField
wb.Navigate(url . index)
while wb.readyState!=4 || wb.document.readyState != "complete" || wb.busy
continue
pages := wb.document.getElementById("pagesTop").getElementsByTagName("A").length - 1
loop % pages
{
wb.Navigate(url . index . "&pg=" A_index)
while wb.readyState!=4 || wb.document.readyState != "complete" || wb.busy
continue
loop % (links := wb.document.getElementsByTagName("UL")[1].getElementsByTagName("A")).length
{
virksomheds_Urls.Insert(links[A_index-1].href)
}
}
}
for, key, val in virksomheds_Urls
{
wb.Navigate(val)
while wb.readyState!=4 || wb.document.readyState != "complete" || wb.busy
continue
csv .= (Email := wb.document.getElementById("divContactBox").GetelementsByTagName("A")[0].innertext) ","
}
FileAppend, %csv%, Emails_csv.csv
run, excel.exe Emails_csv.csv
return