如何使用Curl来提交URL?

b91juud3  于 2022-11-13  发布在  其他
关注(0)|答案(4)|浏览(195)

你知道,有了indexnow api,我们现在可以在bing和yandex搜索引擎中即时索引页面,我准备了一个类似于文档(https://www.indexnow.org/documentation)的文件,但是我不知道用哪个命令从终端运行它。
如果有经验的人能帮忙,我会很高兴的。
谢谢。

kfgdxczn

kfgdxczn1#

您可以使用以下示例中的curl(如果它仍然是实际的)。

curl -X POST \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"host": "example.org", "key":"my-perfect-key", "urlList": ["https://example.org/page1","https://example.org/page2"]}' \
  https://yandex.com/indexnow

不要忘记将keyfile放在站点的根目录下。

vuktfyat

vuktfyat2#

<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
//-- Параметры --//
$dlm = "|~|";  // Псевдо разделитель
$dlmBreack = "\n"; // Разделитель
$dlmCount = "10000";  // Ограничение количества считываемых строк из файла
$txtfile = "url.txt"; // Файл данных содержащий список URL-адресов
$IndexNowKey = "6352b4ae24df467dbffe0adb9438cd28"; // Ключ IndoxNew
$uRoor = "example.com"; // Домен
$uHttps = "https"; // http или https
$uEngine = "www.bing.com";  // Кому передаем данные - yandex.com, www.bing.com или api.indexnow.org
//-- Параметры --//
$uRLS = "".$uHttps."://$uRoor/"; // Конечный Url с протоколом http или https
$txtfile = preg_replace("!^s+!m", "", $txtfile); // Обрезать пробелы в начале строки
$txtfile = preg_replace("![\n\r]+\s*[\n\r]+!", "\r\n", $txtfile); // Удаляем пустые строки
$DoLink = file_get_contents($txtfile);
$Link = explode($dlmBreack, $DoLink, $dlmCount);
 for($in = 0; $in < count($Link); $in++){
$Urls = explode($dlm, $Link[$in]);
$uUrl = $Urls[0]; // Строка со ссылкой
if ($uUrl!=='') { $BLGe[]="$uUrl"; } // Создаем массив ссылок
 }
$data = array('host' => "$uRoor", 'key' => "$IndexNowKey", 'keyLocation' => "".$uRLS."".$IndexNowKey.".txt", 'urlList' =>array_reverse(array_reverse($BLGe)));
$data_string = json_encode($data);
$ch = curl_init("https://$uEngine/indexnow");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json; 
charset=utf-8'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data, JSON_UNESCAPED_UNICODE));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
$result = curl_exec($ch);
$http_code = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$res = json_encode($res, JSON_UNESCAPED_UNICODE);
 if ($http_code == 200) { echo "<div class=\"alert alert-success text-center\" role=\"alert\">Отет запроса -$http_code <b>Подготовлено и успешно отправлено $count URL</b></div><div class=\"alert alert-secondary text-center\" role=\"alert\">сайт - <b>$uHost</b>, запрос - <b>$uEngine</b></div>"; }
 elseif ($http_code == 202) { echo "<div class=\"alert alert-primary text-center\" role=\"alert\">Отет запроса -$http_code <b>Подготовлено и успешно отправлено $count URL, ожидается проверка ключа IndexNow</b></div><div class=\"alert alert-secondary text-center\" role=\"alert\">сайт - <b>$uHost</b>, запрос - <b>$uEngine</b></div>"; }
 elseif ($http_code == 400) { echo "<div class=\"alert alert-danger text-center\" role=\"alert\">Отет запроса -$http_code <b>Неверный запрос. Неверный формат</b></div><div class=\"alert alert-secondary text-center\" role=\"alert\">сайт - <b>$uHost</b>, запрос - <b>$uEngine</b></div>"; }
 elseif ($http_code == 403) { echo "<div class=\"alert alert-danger text-center\" role=\"alert\">Отет запроса -$http_code <b>Запрещено. Недействительный ключ (например, ключ не найден, файл найден, но ключ отсутствует в файле)</b></div><div class=\"alert alert-secondary text-center\" role=\"alert\">сайт - <b>$uHost</b>, запрос - <b>$uEngine</b></div>"; }
 elseif ($http_code == 422) { echo "<div class=\"alert alert-danger text-center\" role=\"alert\">Отет запроса -$http_code <b>Необрабатываемый объект. URL-адреса не принадлежат хосту или ключ не соответствует схеме в протоколе</b></div><div class=\"alert alert-secondary text-center\" role=\"alert\">сайт - <b>$uHost</b>, запрос - <b>$uEngine</b></div>"; }
 elseif ($http_code == 429) { echo "<div class=\"alert alert-danger text-center\" role=\"alert\">Отет запроса -$http_code <b>Слишком много запросов. Расчитывается какпотенциальный спам</b></div><div class=\"alert alert-secondary text-center\" role=\"alert\">сайт - <b>$uHost</b>, запрос - <b>$uEngine</b></div>"; 
}
 else { echo "<div class=\"alert alert-danger text-center\" role=\"alert\">$http_code -<b> Ошибка отправки списка URL</b></div>";

?〉

pqwbnv8z

pqwbnv8z3#

工作代码。通过使用PDO连接获取所有URL并创建数组,将其传递到curl

$pdo = con();
$pattern = 'us';
$sql = "SELECT * FROM big_data WHERE country = :pattern AND id > 68251  ORDER BY id ASC limit 1000";
$statement = $pdo->prepare($sql);
$statement->execute([':pattern' => $pattern]);
$res = $statement->fetchAll(PDO::FETCH_ASSOC);

foreach($res as $r){ 
    $url = url($r['id'], $r['plink'], $r);
    $BLGe[]= 'https://www.haveinlist.com'.$url;
}

$IndexNowKey = "df71a7e2a26a44d89f1a5b6c8d3bbf99"; 
$uRoor = "www.haveinlist.com"; 
$uHttps = "https"; 
$uEngine = "www.bing.com";  
$uRLS = "".$uHttps."://$uRoor/"; 
$data = array('host' => "$uRoor", 'key' => "$IndexNowKey", 'keyLocation' => "".$uRLS."".$IndexNowKey.".txt", 'urlList' =>array_reverse(array_reverse($BLGe)));

$ch = curl_init("https://$uEngine/indexnow");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data, JSON_UNESCAPED_UNICODE));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
$http_code = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$res = json_encode($res, JSON_UNESCAPED_UNICODE);
if ($http_code == 200) { echo "Response -$http_code List URL sent successfully"; }
elseif ($http_code == 202) { echo "Response -$http_code <b>Accepted. received, pending verification of key IndexNow</b>"; }
elseif ($http_code == 400) { echo "Response -$http_code <b>Bad request. Bad format</b>"; }
elseif ($http_code == 403) { echo "Response -$http_code <b>Forbidden. Invalid key (e.g. key not found)</b>"; }
elseif ($http_code == 422) { echo "Response -$http_code <b>Unprocessed object. URLs do not belong to host or key does not match scheme in protocol</b>"; }
elseif ($http_code == 429) { echo "Response -$http_code <b>Too many requests. Counted as potential spam</b>"; }
else { echo "$http_code -<b> Error sending URL list</b>"; }
kg7wmglp

kg7wmglp4#

curl -i -X POST 'https://www.bing.com/indexnow' \
-H 'Content-Type: application/json' \
-d '{"host": "e.it", "key":"a25c7f37fabf416f8bb5e95360dc727f", "urlList": ["https://e.it/url1","https://e.it/url2"]}'

请确保将生成的密钥

相关问题