2015-09-03 30 views
1

我正在嘗試從IFA Berlin的參展商處檢索所有電子郵件地址。 雖然這很容易抓取。如何從瀏覽器讀取.vcf文件?

但作爲一個棘手的部分,他們只是讓我們下載一個.vcf文件或發送電子郵件(通過他們的服務器,我猜)。我想找到沒有下載該vcf文件的電子郵件地址。否則,我可以下載它並使用PHP輕鬆閱讀(因爲我的抓取工具也在PHP中)。

這也是我潛伏多年後的第一個問題!很高興見到你們。

回答

0

如何從瀏覽器讀取.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; 
+0

哇謝謝!是的,該文件很容易解析,這就是我想要做的,非常感謝!如果我有更多問題,我會在這裏發佈。 – Sinequanon

+0

歡迎您:) –

+0

在幾分鐘內完成了感謝您!我從來沒有使用過正則表達式,它對我來說總是很複雜。你有什麼好的教程嗎? 再次感謝 – Sinequanon

相關問題