1
我正在嘗試從IFA Berlin的參展商處檢索所有電子郵件地址。 雖然這很容易抓取。如何從瀏覽器讀取.vcf文件?
但作爲一個棘手的部分,他們只是讓我們下載一個.vcf文件或發送電子郵件(通過他們的服務器,我猜)。我想找到沒有下載該vcf文件的電子郵件地址。否則,我可以下載它並使用PHP輕鬆閱讀(因爲我的抓取工具也在PHP中)。
這也是我潛伏多年後的第一個問題!很高興見到你們。
我正在嘗試從IFA Berlin的參展商處檢索所有電子郵件地址。 雖然這很容易抓取。如何從瀏覽器讀取.vcf文件?
但作爲一個棘手的部分,他們只是讓我們下載一個.vcf文件或發送電子郵件(通過他們的服務器,我猜)。我想找到沒有下載該vcf文件的電子郵件地址。否則,我可以下載它並使用PHP輕鬆閱讀(因爲我的抓取工具也在PHP中)。
這也是我潛伏多年後的第一個問題!很高興見到你們。
如何從瀏覽器讀取
.vcf
文件?
該文件將永遠是文件下載,永遠不會顯示在瀏覽器中。使其工作的一種方法是設置自定義瀏覽器擴展,該擴展臨時存儲文件並分析微格式並顯示信息。
PHP刮痧方法
有名片解析器在那裏:https://github.com/nuovo/vCard-parser 但我認爲你可以在一個RegExp解決此基礎:/EMAIL;INTERNET:(.*)/
。
讓我們假設,你的第一刮板運行爲您提供了與會者ID列表, 那麼你的第二個(虛擬卡)刮跑的售價可能和ID提取姓名和電子郵件:
<?php
function getVcard($id) {
return file_get_contents('http://www.virtualmarket.ifa-berlin.de/?Action=attendeeVcard&id=' . $id);
}
function getEmailFromVcard($vcard)
{
preg_match('/EMAIL;INTERNET:(.*)/', $vcard, $matches);
if(isset($matches[1])) {
return $matches[1];
}
}
function getNameFromVcard($vcard)
{
preg_match('/N:(.*);;/', $vcard, $matches);
if(isset($matches[1])) {
$array = explode(';', $matches[1]);
$name = trim($array[1]) . ' ' . trim($array[0]);
return $name;
}
}
$id = 1775586;
$vcard = getVcard($id);
$email = getEmailFromVcard($vcard);
$name = getNameFromVcard($vcard);
echo $name . ' ' . $email;
哇謝謝!是的,該文件很容易解析,這就是我想要做的,非常感謝!如果我有更多問題,我會在這裏發佈。 – Sinequanon
歡迎您:) –
在幾分鐘內完成了感謝您!我從來沒有使用過正則表達式,它對我來說總是很複雜。你有什麼好的教程嗎? 再次感謝 – Sinequanon