如何从浏览器读取 .vcf 文件?
How to read .vcf file from browser?
我正在尝试检索 IFA Berlin 参展商的所有电子邮件地址。
不过这很容易抓取。
但作为一个棘手的部分,他们只允许我们下载 .vcf 文件或发送电子邮件(我猜是通过他们的服务器)。我想在不下载该 vcf 文件的情况下找到该电子邮件地址。否则我可以下载它并使用 PHP 轻松阅读(因为我的爬虫也在 PHP 中)。
这也是我潜伏多年的第一个问题!很高兴认识你们
How to read .vcf
file from browser?
此文件将始终是文件下载,绝不会显示在浏览器中。使其工作的一种方法是设置自定义浏览器扩展,它临时存储文件并解析微格式并显示信息。
PHP scraping approach
那里有 vcard 解析器:https://github.com/nuovo/vCard-parser
但我认为您可以基于 RegExp 解决方案:/EMAIL;INTERNET:(.*)/
.
假设,您的第一次抓取 运行 为您提供了与会者 ID 列表,
然后你的第二个(vcard)抓取 运行 可以通过 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;
我正在尝试检索 IFA Berlin 参展商的所有电子邮件地址。 不过这很容易抓取。
但作为一个棘手的部分,他们只允许我们下载 .vcf 文件或发送电子邮件(我猜是通过他们的服务器)。我想在不下载该 vcf 文件的情况下找到该电子邮件地址。否则我可以下载它并使用 PHP 轻松阅读(因为我的爬虫也在 PHP 中)。
这也是我潜伏多年的第一个问题!很高兴认识你们
How to read
.vcf
file from browser?
此文件将始终是文件下载,绝不会显示在浏览器中。使其工作的一种方法是设置自定义浏览器扩展,它临时存储文件并解析微格式并显示信息。
PHP scraping approach
那里有 vcard 解析器:https://github.com/nuovo/vCard-parser
但我认为您可以基于 RegExp 解决方案:/EMAIL;INTERNET:(.*)/
.
假设,您的第一次抓取 运行 为您提供了与会者 ID 列表, 然后你的第二个(vcard)抓取 运行 可以通过 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;