Вот код парсера:
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
ini_set('max_execution_time', 900000);
$link = $_POST['page_link']; //page_link это страница результатов выдачи google $i = 0; //стартовый номер ссылки на страницу из результатов выдачи
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_USERAGENT, "");
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.ru/");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 0);
$data = curl_exec($ch);
preg_match_all("/<cite>(.+?)<\/cite>/is",$data,$matches);
$result = $matches[1];
$resultLength = count($result);
for ($i; $i < $resultLength; $i++) {
$str_out = strip_tags($result[$i]);
$str = file_get_contents($str_out, false);
preg_match_all('#(.+?)\@([a-z0-9-_]+)\.(ru|net|com|ua|in|by|tv|pl|biz)#i',$str,$matches);
$urls[] = $matches[0];
$urls_result = implode("",$urls[0]);
echo $str_out."<br>";
echo $urls_result."<br>";
}
Если
$link = "https://www.google.com.ua/search?q=odessa+web+studio+contact&oq=odessa+web+studio+contact&gs_l=psy-ab.3..33i160k1.721.721.0.1337.1.1.0.0.0.0.108.108.0j1.1.0....0...1.1.64.psy-ab..0.1.107....0.hXfl1TDkaHc";
То вот такой результат:
https://skylogic.com.ua/contacts.html
sup@skylogic.com
https://lynx.od.ua/contacts/
sup@skylogic.com
https://www.trendline.in.ua/
sup@skylogic.com
https://sozdat-sayt.com.ua/contact/
sup@skylogic.com
и так далее.
Вопрос: почему спарсенный email повторяется, если должен парсится отдельный email на с каждой отдельно страницы. Если сменить номер стартовой страницы с которой должен начать парсинг, e-mail меняется, на тот который спарсили с другой страницы, но по аналогии дублируется.
Вы кажется в цикле пихаете всё сюда $urls[] = $matches[0];
А далее выводите только $urls_result = implode("",$urls[0]);
Первый индекс $urls[0]
В начале цикла нужно добавить $urls = [];
и будет счастье
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый день профессионалыУ меня есть ссылка, когда её нажимаешь, передается значение через переменную dep_link
Здравствуйте, друзья! У меня такой вопрос: есть класс в нем я определил вектор с типом stringИ я вызываю этот класс с этим массивом и хочу туда...